Учебно-методический комплекс дисциплины (опд. Ф. 10) Базы данных (код и название дисциплины по учебному плану специальности)

Вид материалаУчебно-методический комплекс

Содержание


Primary key clustered
Primary key clustered
CREATE INDEX [KORRIO0] ON [dbo].[KORR0]([OPERAKLASS], [DOC]) ON [PRIMARY]
Constraint [fk_doc0_prog] foreign key
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   15


Выбор предметной области

Предметной областью может быть любая на Ваш выбор: регистрация и лечение пациентов в стоматологической клинике; система заказа – резервирования билетов; интернет – магазин и т. д.


Примеры словесного описания предметных областей:

  1. Спортивный комплекс предоставляет несколько видов услуг. Пользователи могут оплачивать один сеанс (100 руб.) или приобретать абонемент на 8 сеансов (640 руб.) на определенное время и день недели. Каждый сеанс длится 1 час.



Надо ответить на вопросы типа:

1.1. Сколько денег заплатил пользователь за период?

1.2. Какие пользователи имеют абонемент в тренажерный зал за указанный период?

1.3. Есть ли свободное место на теннисном корте (клиент заранее не позаботился о приобретении абонемента) на определенное время и дату?

1.4. Сколько свободных мест в плавательном бассейне на определенное время и дату?

1.5. Сколько денег поступило в кассу за период?

и т. д.

  1. Медицинское учреждение состоит из стационара и поликлиники. На каждого пациента ведется “карточка”, куда заносятся паспортные данные. В поликлинике на каждый курс лечения пациента ведется амбулаторная карта, куда заносятся диагнозы, объективные данные, жалобы, факт каждого посещения, лечебные назначения. В стационаре на каждый курс лечения пациента формируется “карта больного”, куда заносятся диагнозы, лечебные назначения, объективные данные. При выписке в карту добавляется исход болезни.



Надо иметь возможность отвечать на вопросы типа:

2.1. Какие диагнозы (и классы диагнозов) наиболее часто встречаются среди всех пациентов?

2.2. Как лечили пациента …?

2.3. Пациенты, пролеченные в стационаре за период … .

2.4. Какие пациенты имеют диагноз …?

2.5. Пациенты, лечившиеся за период … в поликлинике и стационаре.

и т. д.


Далее представлены образцы схем баз данных типовых проектов.

Внимание: это не инфологические модели, а даталогические!



Рисунок 1. Примерный вид схемы базы данных курсового проекта (СУБД Access).




Рисунок 2. Еще один пример схемы базы данных курсового проекта (СУБД MS SQL 2000).

Ниже представлен фрагмента скрипта для создания таблиц и связей между ними, для базы данных, схема которой (даталогическая модель) изображенна на рис. 2. Скрипт может быть получен автоматически или написан вручную. Наличие скрипта желательно, т. к. он дает детальное описание базы данных (по сути, является воплощением физической модели):


CREATE TABLE [dbo].[PROG] (

[PARENT] [int] NULL ,

[PATH] [char] (15) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[NAME] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[SON] [int] NULL ,

[UNIT] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[PRICEN] [float] NULL ,

[PRICE] [float] NULL ,

[QUANT] [float] NULL ,

[ART] [int] NULL ,

[UNIT1] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[UNIT2] [varchar] (25) COLLATE Cyrillic_General_CI_AS NULL ,

[INTRV] [int] NULL ,

[HIDE] [smallint] NULL

) ON [PRIMARY]

CREATE TABLE [dbo].[DOC0] (

[DOC] [int] NOT NULL ,

[OPERAKLASS] [char] (15) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[DATD] [datetime] NULL ,

[DATF] [datetime] NULL ,

[OPERA] [int] NULL ,

[NUM] [varchar] (25) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[SUMMC] [money] NULL ,

[SUMMA] [money] NULL ,

[SUMMB] [money] NULL ,

[OBJ0] [char] (15) COLLATE Cyrillic_General_CI_AS NULL ,

[OBJ1] [char] (15) COLLATE Cyrillic_General_CI_AS NULL ,

[OBJ2] [char] (15) COLLATE Cyrillic_General_CI_AS NULL ,

[OBJ3] [char] (15) COLLATE Cyrillic_General_CI_AS NULL ,

[OBJ4] [char] (15) COLLATE Cyrillic_General_CI_AS NULL ,

[SYS] [smallint] NULL ,

[SUMMT] [money] NULL ,

[SUMMO] [money] NULL ,

[SUMML] [money] NULL ,

[DATS] [datetime] NULL ,

[TREATY] [int] NULL ,

[DATA] [datetime] NULL

) ON [PRIMARY]

………………………

ALTER TABLE [dbo].[PROG] WITH NOCHECK ADD

PRIMARY KEY CLUSTERED

(

[PATH]

) ON [PRIMARY]

ALTER TABLE [dbo].[DOC0] WITH NOCHECK ADD

PRIMARY KEY CLUSTERED

(

[OPERAKLASS],

[DOC]

) ON [PRIMARY]

ALTER TABLE [dbo].[PATIENT] WITH NOCHECK ADD

PRIMARY KEY CLUSTERED

(

[PATH]

) ON [PRIMARY]

………………………….

CREATE INDEX [PROG] ON [dbo].[PROG]([PARENT], [PATH]) ON [PRIMARY]

CREATE INDEX [PNAME] ON [dbo].[PROG]([PARENT], [NAME]) ON [PRIMARY]

CREATE INDEX [PART] ON [dbo].[PROG]([PARENT], [ART]) ON [PRIMARY]

CREATE INDEX [SON] ON [dbo].[PROG]([SON]) ON [PRIMARY]

CREATE INDEX [DKLASS0] ON [dbo].[DOC0]([OPERAKLASS], [DATF], [DOC]) ON [PRIMARY]

CREATE INDEX [DNUM0] ON [dbo].[DOC0]([NUM], [DOC]) ON [PRIMARY]

CREATE UNIQUE INDEX [COURSEDOC0] ON [dbo].[COURSE0]([OPERAKLASS], [DOC], [ID]) ON [PRIMARY]

CREATE INDEX [KORRIO0] ON [dbo].[KORR0]([OPERAKLASS], [DOC]) ON [PRIMARY]

………………………………

CREATE INDEX [CASHC0] ON [dbo].[CASH0]([OPERAKLASS], [DOC], [IDCOURSE]) ON [PRIMARY]

CREATE INDEX [CINDIO0] ON [dbo].[CONDI0]([OPERAKLASS], [DOC], [IDCOURSE]) ON [PRIMARY]

CREATE INDEX [OPERAD0] ON [dbo].[OPERA0]([OPERAKLASS], [DOC]) ON [PRIMARY]

ALTER TABLE [dbo].[DOC0] ADD

CONSTRAINT [FK_DOC0_PROG] FOREIGN KEY

(

[OPERAKLASS]

) REFERENCES [dbo].[PROG] (

[PATH]

)

ALTER TABLE [dbo].[PATIENT] ADD

CONSTRAINT [FK_PATIENT_PROG] FOREIGN KEY

(

[PATH]

) REFERENCES [dbo].[PROG] (

[PATH]

)

………………………