Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка готовая(курсовая).doc
Скачиваний:
84
Добавлен:
27.03.2016
Размер:
908.29 Кб
Скачать
        1. Определение дополнительных ограничений целостности

Перечислим ограничения целостности, которые не указаны в табл. 14–23.

Это следующие:

  1. Значения всех числовых атрибутов – больше 0 (или null, если атрибут необязателен).

  2. Область значений атрибута SexотношенияEMPLOYEES– символы 'м' и 'ж'.

  3. Отношение ROOMSне имеет первичного ключа, но комбинация значений (R_no,Tel) уникальна.

  4. В отношении TITLESпорядковые номера авторов на обложке одной книги должны идти подряд, начиная с 1.

  5. В отношении TITLESсумма процентов гонорара по одной книге равна 100.

Ограничения (4,5) нельзя реализовать в схеме отношения. В реальных БД подобные ограничения целостности реализуются программно (через внешнее приложение или специальную процедуру контроля данных).

        1. Описание групп пользователей и прав доступа

Опишем для каждой группы пользователей права доступа к каждой таблице и к каждому полю (атрибуту):

  1. Администратор БД: имеет доступ ко всем данным (по записи), может изменять структуру базы данных и связи между отношениями. Устанавливает права доступа для всех остальных групп.

  2. Представители администрации компании: имеют доступ по чтению ко всем данным и доступ по записи к отношениям POSTS,ROOMSиEMPLOYEES.

  3. Менеджеры: имеет доступ по чтению ко всем данным, кроме отношения POSTS. Имеют доступ по записи к отношениям AUTHORS, CUSTOMERS, BOOKS, EDITORS, TITLES, ORDERS, ITEMS.

  4. Редакторы: имеют доступ по чтению к следующим отношениям:

  • AUTHORS, кроме полей A_passp, A_org, A_pdate, A_INN (паспортные данные и ИНН).

  • BOOKS, кроме полей B_advance, B_fee (затраты и гонорар).

  • EDITORS.

  • TITLES.

  1. Сотрудники, принимающие и выполняющие заказы: имеют доступ по записи к отношениям CUSTOMERS,ORDERS,ITEMSи по чтению к полямB_title,B_circul,B_priceиB_restотношенияBOOKS(название, тираж, цена, непроданный остаток тиража).

      1. Реализация проекта базы данных

Не привязываясь к конкретной СУБД и выполнять описание основных операций по обработки данных на Transact-SQL.

1. Запросы к бд.

Запрос– это команда, которая формулируется для СУБД, и требует предоставить определенную информацию, указанную в параметрах команды.

Все запросы в SQLконструируются на базе одной команды, структура которой, с одной стороны, довольно проста, но, с другой стороны, ее можно расширять для того, чтобы выполнять очень сложные вычисления и обработку данных.

В самом простом случае команда SELECTдает инструкцию СУБД для поиска информации в таблице. В этом случае синтаксис команды следующий:

SELECT <имя столбца1>, <имя столбца2>, ... FROM <имя таблицы> [WHERE <условие>]

SELECT- ключевое слово, которое сообщает СУБД, что эта команда является запросом. Все запросы начинаются с этого ключевого слова, за которым следует пробел.

<имя столбца1>,... - список столбцов таблицы, которые должны быть выведены на экран в результате выполнения запроса. Столбцы, имена которых не представлены в списке, не включаются в состав выходных данных команды. Это, конечно, не приводит к удалению из таблиц таких столбцов или содержащейся в них информации, потому что запрос не воздействует на информацию в таблицах - он только отображает данные.

FROM- ключевое слово, которое должно быть представлено в каждом запросе. За ним следует пробел, а затем - имя таблицы, используемой в качестве источника информации для запроса.

WHERE- ключевое слово, за которым следует условие, которому должны соответствовать выбираемые значения.

В результате запроса, в самом простом случае, данные выводятся на экран в виде нескольких колонок (одна колонка соответствует одному столбцу в таблице базы данных). Причем это вывод может быть не упорядочен. Обычно строки выдаются в том порядке, в котором они вводятся или хранятся в таблице. Можно упорядочить выходные данные непосредственно с помощью SQL-команд, указав специальное предложение. Но об этом чуть позже.

Если в команде SELECTпоставить звездочку (*) вместо списка столбцов, то в результате будет выведена вся информация, содержащаяся в каждом столбце таблицы:

SELECT * FROM <имя таблицы>

Для того, чтобы получить информацию из строго определенных столбцов таблицы, необходимо просто указать те столбцы, которые требуется просмотреть, и не указывать те, которые не требуются.

Причем порядок вывода столбцов будет именно таким, как указано в запросе.

Пример: вывести информацию о табельном номере, именах и дате рождения сотрудников:

SELECT E_ID,E_NAME, E_BORN FROM Employees