Физическое проектирование бд

Не привязываясь к конкретной СУБД, выполним описание логической схемы БД на SQL.

Приведём фрагмент описания схемы БД на DDL:

 

1. Отношение POSTS (должности):

create table posts (

p_id numeric(3) primary key,

p_post varchar(30) not null,

p_salary numeric(8,2) not null check(p_salary > 0));

 

2. Отношение ROOMS (комнаты):

create table rooms (

r_no numeric(3) primary key,

r_tel varchar(10),

unique(r_no, r_tel));

 

3. Отношение EMPLOYEES (сотрудники):

create table employees (

e_id numeric(4) primary key,

e_fname varchar(20) not null,

e_lname varchar(30) not null,

e_born date,

e_sex char(1) not null check(e_sex in ('ж','м')),

e_post numeric(3) references posts,

e_room numeric(3),

e_tel varchar(10),

e_inn char(12) not null,

e_passp char(12) not null,

e_org varchar(30) not null,

e_pdate date not null,

e_addr varchar(50),

foreign key(e_room,e_tel) references rooms(r_no,r_tel));

 

Другие отношения описываются аналогично.

Права доступа пользователей, описанные в п. 6.4.4, предоставляются с помощью команды GRANT. Рассмотрим для примера права сотрудника компании user1, который принимает и обслуживает заказы. Права доступа к отношениям CUSTOMERS, ORDERS, ITEMS могут быть описаны следующим образом:

 

grant insert, update on customers to user1;

grant insert, update, delete on orders to user1;

grant insert, update, delete on items to user1;

 

Для реализации частичного доступа к отношению BOOKS следует создать соответствующее представление и предоставить доступ к этому представлению:

create view goods (id, title, circul, price, rest)

as select b_contract, b_title, b_circul, b_price, b_rest

from books;

grant select on goods to user1;

 

Приведём примеры нескольких типовых запросов:

1. Список всех текущих проектов (книг, находящихся в печати и в продаже):

create view edits as

select b_contract, b_title, b_date

from books

where b_rest is null or b_rest > 0;

 

2. Список редакторов, работающих над книгами:

create view edits (title, fname, lname) as

select b_title, e_fname, e_lname /*ответственный редактор*/

from books, employees e

where b_edit=e_id and

(b_publ is null or b_publ > sysdate);

union /*sysdate – текущая дата*/

select b_title, a_fname, a_lname

from books, employees e, editors d

where b.b_contract=d.b_id and d.e_id=a.e_id and

(b_publ is null or b_publ > sysdate)

order by 1;

 

3. Определение общей прибыли от продаж по текущим проектам:

create view edits (title, total) as

select b_title, (circul–rest)*price–advance

from books

where b_rest is null or b_rest > 0;

 

Анализ готовых запросов показывает, что для повышения эффективности работы с данными необходимо создать индексы для всех внешних ключей (и всех первичных ключей, если выбранная СУБД не создаёт их автоматически). Приведём примеры создания индексов:

create index e_posts on employees(e_post);

create index b_editors on books(b_edit);

create unique index r_tel on rooms(r_no,r_tel);

 


ЗАКЛЮЧЕНИЕ

 

Один их подходов к организации процессов обработки данных в информационных системах выразился в повсеместном применении концепции баз данных и систем управления ими. При этом ставятся и решаются задачи реализации принципов независимости программ пользователей баз данных от структур хранимых в ЭВМ данных и независимости хранимых данных от программ пользователей. В данном учебном пособии рассмотрены все этапы концептуального проектирования и создания базы данных на конкретном примере. Для инфологического этапа проектирования баз данных рассмотрена наиболее часто используемая модель «сущность – связь». Для даталогического этапа проектирования была рассмотрена наиболее перспективная и широко используемая модель данных: реляционная.


ЛИТЕРАТУРА

Основная:

1. Информатика для юристов и экономистов. Учебник для вузов / Симонович С.В. и др. – Спб.: Питер, 2002. – 688 с.

2. Базы данных: модели, разработка, реализация / Т.С. Карпова. – СПб.: Питер, 2001. – 304 с.

3. Карпов Б. Microsoft Access 2000: справочник.– СПб.: Питер, 2001. – 416 с.

4. Диго С. М. Создание баз данных в среде СУБД Access. М.: МЭСИ, 2000. - 105 с.

5. Э.Джонс, Д.Саттон, Office 97. Библия пользователя, Диалектика, Киев-Москва, 1997

6. Марков Н.Г. Базы данных. Учебное пособие / - Томск: Томский политехнический университет, 2002.-115 с

7. Бекаревич Ю., Пушкина Н., СУБД Access Windows 95 в примерах, BHV - Санкт-Петербург, 1997

8. Красина Ф.А. Базы данных. Учебное пособие / - Томск: Томский межвузовский центр дистанционного образования, 2002.-114 с.

9. Сибилев Д.С. Разработка концептуальной модели данных - Томск, 2002.

10. Быстров В.Н. Базы данных. Методические указания к курсовому проектированию / - Томск:, 2002.-18 с

 

Дополнительная:

1. Дейт К. Дж. Введение в системы баз данных, 6-е изд.: Пер. с англ.. - К.; СПб. Издательский дом "Вильямс", 2000

2. Мишенин А. И. Теория экономических информационных систем. - М.: Финансы и статистика, 1999. – 240 с.: ил.

3. Саймон А. Р. Стратегические технологии баз данных: менеджмент на 2000 год. М.: Финансы и статистика, 1998

4. Тиори,Тоби, Фрай,Джеймс. Проектированние структур баз данных. Кн. 1. - М.: Мир, 1985. - 287 с.:


[1] Данный пример заимствован из пособия Карповой И.П. Проектирование реляционных баз данных