Автор работы: Пользователь скрыл имя, 05 Февраля 2014 в 19:13, дипломная работа
С распространением сети Интернет возникли «электронные магазины» торгующие самыми различными товарами. По сравнению с обычными магазинами они имеют множество преимуществ, которые способствуют росту доходов в этой сфере торговли.
Целью данного дипломного проекта является рассмотрение принципов и методов публикации БД в Интернет и разработка модели базы данных «Книжный Интернет-магазин», а также реализация информационной системы в виде Web-приложения в архитектуре «клиент-сервер».
4. Таблица Basket_Books (Состав_Корзины) содержит:
5. Таблица Customers (Покупатели) содержит:
6. Таблица Orders (Заказы) содержит:
7. Таблица Order_Books (Состав_Заказа) содержит:
C целью построения модели данных и генерации кода серверной и клиентской части используется продукт ERwin фирмы PLATINUM technology. ERwin имеет два уровня представления модели - логический и физический. На логическом уровне данные не связаны с конкретной СУБД, поэтому могут удобно отобрать структура представления данных в базе. Физический уровень фактически отображает системный каталог, который зависит от конкретной СУБД. По корректной физической модели ERwin может генерировать физическую схему (системный каталог или SQL -скрипт) для заданной СУБД [5,20].
Логическая модель.
На данном этапе проектирования описывается модель с учетом возможностей конкретной системой управления базами данных. В итоге, видно какой будет логическая структура представления данных в базе. На рис. 2.1 представлена логическая модель.
Рисунок 2.1. Логическая схема структуры базы данных
Физическая модель.
На этом этапе проектируется физическая модель базы данных. Описываются типы данных, их физическое расположение и размерность. На рис. 2.2 показана физическая модель.
Рисунок 2.2. Физическая схема структуры базы данных
В данной физической модели были использованы типы связей , представленные в таблице 2.1.
Таблица 2.1
Классификация связей
Номер связи |
Родительская таблица |
Дочерняя таблица |
Тип связи |
1 |
Категории |
Книги |
1:M |
2 |
Издатели |
Книги |
1:M |
3 |
Книги |
Состав_Корзины |
1:M |
4 |
Книги |
Состав_Заказа |
1:M |
5 |
Заказы |
Состав_Заказа |
1:M |
6 |
Покупатели |
Заказы |
1:М |
2.3 Разработка даталогической модели
В этом рaзделе разрабатываются таблицы базы данных Books. Для кaждого поля тaблицы выбирается рaзмер поля (количеcтво cимволов), тип. Для первичных ключей необходимо ввеcти зaпрет неопределенных знaчений. Для оcтaльных полей возможноcть зaпретa неопределенных знaчений определяетcя cемaнтикой предметной облacти.
В таблице 2.2 приведены сведения об атрибутах сущностей.
Таблица 2.2
Сведения об атрибутах отношений
Имя атрибута |
Тип (размер) |
Допустимость неопределенных значений |
Ключ |
Книги | |||
id_book |
int |
Not null |
PK |
id_publ |
int |
Not null |
FK |
id_cat |
int |
Not null |
FK |
name_book |
varchar(100) |
Not null |
|
Author |
varchar (50) |
Not null |
|
Pages |
int |
Not null |
|
Price |
int |
Not null |
|
Image |
varchar(50) |
Not null |
|
Издатели | |||
id_publ |
Int |
Not null |
PK |
name_publ |
varchar(50) |
Not null |
|
Категории | |||
id_cat |
Int |
Not null |
PK |
Продолжение таблицы 2.2
Name_cat |
varchar(50) |
Not null |
|
Состав_Корзины | |||
id_bask |
char(15) |
Not null |
РK |
id_book |
Int |
Not null |
FK |
kolvo |
Int |
Not null |
|
Покупатели | |||
id_cust |
Int |
Not null |
PK |
fam |
varchar(30) |
Not null |
|
Im |
varchar(30) |
Not null |
|
addr |
varchar(100) |
Not null |
|
varchar(30) |
Not null |
||
login |
varchar(15) |
Not null |
|
pass |
varchar(15) |
Not null |
|
Заказы | |||
id_order |
char(15) |
Not null |
РК |
date_ord |
datetime |
Not null |
|
id_cust |
Int |
Not null |
FK |
Состав_Заказа | |||
id_order |
char(15) |
Not null |
FK |
id_book |
Int |
Not null |
FK |
Kolvo |
Int |
Not null |
Создаем базу данных books в MS SQL Server 2008 с использованием полных SQL-скриптов создаем обьекты базы данных.
На рисунке 2.3 показана диаграмма базы данных в SQL Server.
Рисунок 2.3. Диаграмма базы данных в MS SQL Server 2008
Обеспечение безопасности
SQL Server можно представить как
Безопасность платформы и сети. Платформа для SQL Server включает в себя физическое оборудование и сетевые компьютеры, с помощью которых клиенты соединяются с серверами базы данных, а также двоичные файлы, применяемые для обработки запросов базы данных [4].
Физическая безопасность. Рекомендуется строго ограничивать доступ к физическим серверам и компонентам оборудования. Например, оборудование сервера базы данных и сетевые устройства должны находиться в закрытых охраняемых помещениях. Доступ к резервным носителям также следует ограничить. Для этого их рекомендуется хранить в отдельных охраняемых помещениях. Реализация физической сетевой безопасности начинается с запрета доступа неавторизованных пользователей к сети. Следующая таблица содержит дополнительные сведения об источниках сведений по сетевой безопасности.
2.5.1 Безопасность участников и объектов базы данных
Участники — это отдельные пользователи, группы и процессы, которым предоставлен доступ к ресурсам SQL Server. Защищаемые объекты — это сервер, база данных и объекты, которые содержит база данных. У каждого из них существует набор разрешений, с помощью которых можно уменьшить контактную зону SQL Server.
Участники системы безопасности. Под участниками безопасности приложения - это такие сущности, как пользователи, учетные записи, группы и роли, которые могут обращаться к базе данных, серверу или к схеме. Группы и роли известны также как коллекции, поскольку могут включать в себя других участников безопасности.
В модели безопасности приложения существование участников безопасности допускается на трех уровнях: уровне Windows (Active Directory), уровне SQL Server и уровне базы данных [15].
Уровень Windows. Участники безопасности на уровне Windows - это доменные имена входа Windows и локальные группы Windows. Для простоты управления и лучшей безопасности желательно везде, где только возможно, использовать в приложении участников безопасности Windows.
Уровень SQL Server. На уровне SQL Server участниками безопасности являются имена входа SQL Server и серверные роли. Имена входа SQL Server использовать в приложениях не рекомендуется, они допустимы только после предоставления заказчику подробного обоснования этой необходимости, которое в обязательном порядке согласуется со службой безопасности заказчика.
Имена входа SQL Server обычно используются для внешних пользователей компании, например для тех, кто подключается к базе данных через веб-сайт. Кроме того, у каждого экземпляра SQL Server есть встроенное имя входа «sa» и могут также быть имена входа NETWORK SERVICE и SYSTEM (в зависимости от конфигурации экземпляра), которые не должны использоваться Приложением.
Уровень базы данных. На уровне базы данных участниками безопасности являются пользователи базы данных, роли приложения и роли базы данных.
Пользователи базы данных - это сущности, связанные с именами входа Windows или SQL Server, которым назначен определенный набор разрешений и привилегий к отдельным объектам (например, к таблицам) базы данных. Стандартные (встроенные) пользователи баз данных SQL Server: guest, dbo, INFORMATION_SCHEMA и sys не должны использоваться Приложением. Guest - это специальный пользователь, который добавляется к базе данных, чтобы дать возможность любому обладателю имени входа SQL Server получить доступ к базе данных, и, как правило, он заблокирован. Владелец базы данных (или dbo) - это специальный тип пользователя базы данных (обычно создатель базы данных), которому предоставлены все разрешения и привилегии доступа к базе данных, включая право назначать разрешения другим пользователям. Владельца БД могут олицетворять другие пользователи, если это предусматривается логикой работы Приложения. Желательно не предоставлять набор прав dbo подключающимся через приложение пользователям, оставив подобные задачи администратору баз данных. Пользователи INFORMATION_SCHEMA и sys предназначены только для внутрисистемного использования (для обращения к представлениям метаданных) [16].
Выбор пользователей владельцев схем должен исключать возможность их дальнейшего изменений. Предоставление пользовательским ролям баз данных доступа к объектам базы данных желательно осуществлять через соответствующие схемы.
Посредством роли приложения
допускается создавать
Роли базы данных можно использовать для назначения разрешений на уровне базы данных. Например, вы можете создать роль Users, которая позволяет пользователям применять операторы EXECUTE, SELECT, INSERT и UPDATE к определенным таблицам базы данных. Затем можно назначить эту роль некоторым пользователям, вместо того чтобы назначать разрешения каждому из них по отдельности.
Ниже, в таблице 2.3 приведен список предопределенных ролей SQL Server, которые есть в каждой базе данных.
Для упрощения администрирования
SQL Server в производственной среде
рекомендуется поместить
Таблица 2.3
Назначение предопределенных ролей SQL Server
Роли SQL Server |
Предназначение | |
Public |
Роль по умолчанию, назначается всем пользователям базы данных. Если необходимо предоставить всем пользователям базы данных определенный набор разрешений, назначьте эти разрешения роли public. Не допускается предоставлять этой роли весь набор прав, ограничивая доступ пользователей на уровне Приложения. Права на объекты базы данных пользователя не должны зависеть от места подключения. | |
Db_accessadmin |
Предназначена для пользователей, которым необходимо добавлять или удалять имена входа в базе данных. | |
Db_backupoperator |
Предназначена для пользователей, которым необходимо выполнять резервное копирование базы данных | |
db_datareader |
Предназначена для пользователей, которым необходимо просматривать данные в базе данных. Члены этой роли могут выбирать все данные из любой пользовательской таблицы базы данных. Для пользователей Приложения предоставление прав через эту роль нежелательно | |
db_datawriter |
Предназначена для пользователей, которым необходимо добавлять или изменять любые данные в любой пользовательской таблице базы данных. Члены этой роли могут выполнять следующие задачи: DELETE, INSERT и UPDATE. Для пользователей Приложения предоставление прав через эту роль нежелательно | |
db_ddladmin |
Предназначена для пользователей, которым необходимо выполнять задачи, связанные с языком определения данных (DDL) SQL Server. Члены этой роли могут выполнять любые операторы DDL, за исключением GRANT, REVOKE и DENY | |
db_dеnуdаtаrеаdеr |
Предназначена для ограничения доступа к данным в базе данных. Члены этой роли не могут читать никакие данные пользовательских таблиц базы данных | |
db_denydatawriter |
Предназначена для ограничения прав на модификацию базы данных. Члены этой роли не могут добавлять, изменять или удалять данные пользовательских таблиц базы данных |