Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Создание структуры базы данных



Структура базы данных следующая:

· База данных состоит из одной или нескольких таблиц.

· Каждая таблица имеет одно или несколько полей.

· В каждой таблице имеется одна или несколько записей.

На данном этапе были разработаны сама база данных, три таблицы и индексы.

База данных и таблицы

В этом разделе описаны:

§ алгоритм создания базы данных

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

Для начала была создана база данных в два этапа:

1) организация самой базы данных (Файл с расширением *.mdf);

2) организация принадлежащего ей журнала транзакций (Файл с расширением *.ldf).

Создание базы данных осуществляется командой CREATE DATABASE:

CREATE DATABASE stomatologia

ON PRIMARY (NAME= stomatologia, FILENAME=" C: \ stomatologia \ stomatologia.mdf",

SIZE=50MB, MAXSIZE=250MB, FILEGROWTH=25)

LOG ON

(NAME= stomatologia Log, FILENAME=" C: \ stomatologia \ stomatologia Log.ldf",

SIZE=10MB, MAXSIZE=100MB, FILEGROWTH=5)

Отсюда следует, что именем базы данных будет являться «stomatologia». ON – определяет список файлов на диске для размещения информации, хранящейся в базе данных. PRIMARY – определяет первичный файл. LOGON – определяет список файлов на диске для размещения журнала транзакций. В параметрах NAME указывается логическое имя файла, в FILENAME – физическое имя файла, в SIZE – размер файла, в MAXSIZE – максимальный размер файла, в FILEGROWTH – величина прироста.

Далее были созданы следующие таблицы базы данных.

1) Таблица «contactKlienta»:

use stomatologia;

CREATE TABLE [dbo].[contactKlienta](

[id] [int] IDENTITY(1, 1) NOT NULL,

[klientId] [int] NOT NULL,

[contactTypeId] [int] NOT NULL,

[znachenie] [varchar](250) NOT NULL)

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

Рисунок 2.2.1.1 – Таблица «contactKlienta»

2) Таблица «contactSotrudnika»:

use stomatologia;

CREATE TABLE [dbo].[contactSotrudnika](

[id] [int] IDENTITY(1, 1) NOT NULL,

[contactTypeId] [int] NOT NULL,

[znachenie] [varchar](250) NOT NULL,

[sotrudnikId] [int] NOT NULL)

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

Рисунок 2.2.1.2 – Таблица «contactSotrudnika»

 

3) Таблица «contactType»:

use stomatologia;

CREATE TABLE [dbo].[contactType](

[id] [int] IDENTITY(1, 1) NOT NULL,

[contactType] [varchar](250) NOT NULL)

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

Рисунок 2.2.1.3 – таблица «contactType»

4) Таблица «dniNedeli»:

use stomatologia;

CREATE TABLE [dbo].[dniNedeli](

[id] [int] IDENTITY(1, 1) NOT NULL,

[day] [varchar](50) NOT NULL)

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

Рисунок 2.2.1.4 – таблица «dniNedeli»

5) Таблица «dniRabotiSotrudnikov»:

use stomatologia;

CREATE TABLE [dbo].[dniRabotiSotrudnikov](

[id] [int] IDENTITY(1, 1) NOT NULL,

[sotrudnikId] [int] NOT NULL,

[dayId] [int] NOT NULL,

[timeStart] [time](7) NOT NULL CONSTRAINT [DF_dniRabotiSotrudnikov_timeStart] DEFAULT ('9: 00'),

[timeEnd] [time](7) NOT NULL CONSTRAINT [DF_dniRabotiSotrudnikov_timeEnd] DEFAULT ('17: 00'))

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

Рисунок 2.2.1.4 – таблица «dniRabotiSotrudnikov»

6) Таблица «dolznost»:

use stomatologia;

CREATE TABLE [dbo].[dolznost](

[id] [int] IDENTITY(1, 1) NOT NULL,

[dolznost] [varchar](250) NOT NULL)

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

Рисунок 2.2.1.4 – таблица «dolznost»

7) Таблица «kabinet»:

use stomatologia;

CREATE TABLE [dbo].[kabinet](

[id] [int] IDENTITY(1, 1) NOT NULL,

[kabinet] [varchar](250) NOT NULL)

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

Рисунок 2.2.1.4 – таблица «kabinet»

8) Таблица «klient»:

use stomatologia;

CREATE TABLE [dbo].[klient](

[id] [int] IDENTITY(1, 1) NOT NULL,

[fam] [varchar](250) NOT NULL,

[name] [varchar](250) NULL,

[otch] [varchar](250) NULL,

[userId] [int] NULL,

[adres] [varchar](250) NULL,

[polis] [varchar](50) NULL)

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

Рисунок 2.2.1.4 – таблица «klient»

9) Таблица «sotrudnik»:

use stomatologia;

CREATE TABLE [dbo].[sotrudnik](

[id] [int] IDENTITY(1, 1) NOT NULL,

[fam] [varchar](250) NOT NULL,

[name] [varchar](250) NULL,

[otch] [varchar](250) NULL,

[dolznostId] [int] NOT NULL,

[userID] [int] NULL)

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

Рисунок 2.2.1.4 – таблица «sotrudnik»

10) Таблица «user»:

use stomatologia;

CREATE TABLE [dbo].[user](

[id] [int] IDENTITY(1, 1) NOT NULL,

[login] [varchar](250) NOT NULL,

[pas] [varchar](250) NOT NULL)

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

Рисунок 2.2.1.4 – таблица «user»

11) Таблица «usluga»:

use stomatologia;

CREATE TABLE [dbo].[usluga](

[id] [int] IDENTITY(1, 1) NOT NULL,

[usluga] [varchar](250) NOT NULL,

[price] [float] NOT NULL)

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

Рисунок 2.2.1.4 – таблица «usluga»

12) Таблица «zakazanieUslugiDetali»:

use stomatologia;

CREATE TABLE [dbo].[zakazanieUslugiDetali](

[id] [int] IDENTITY(1, 1) NOT NULL,

[uslugaId] [int] NOT NULL,

[kolvoUslug] [int] NOT NULL,

[zakazinieUslugiObshieId] [int] NOT NULL)

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

Рисунок 2.2.1.4 – таблица «zakazanieUslugiDetali»

13) Таблица «zakazinieUslugiObshie»:

use stomatologia;

CREATE TABLE [dbo].[zakazinieUslugiObshie](

[id] [int] IDENTITY(1, 1) NOT NULL,

[klientId] [int] NOT NULL,

[sotrudnikId] [int] NULL,

[date] [date] NOT NULL)

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

Рисунок 2.2.1.4 – таблица «zakazinieUslugiObshie»

14) Таблица «zurnal»:

use stomatologia;

CREATE TABLE [dbo].[zurnal](

[id] [int] IDENTITY(1, 1) NOT NULL,

[date] [date] NOT NULL,

[time] [time](7) NOT NULL,

[sotrudnikId] [int] NOT NULL,

[klientId] [int] NOT NULL,

[opisanie] [text] NULL,

[kabinetId] [int] NULL)

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

Рисунок 2.2.1.4 – таблица «zurnal»

Далее установим ключевые поля:

1)

Индексы

Индексы - это наборы уникальных значений для некоторой таблицы с соответствующими ссылками на данные.

Создание индексов поможет существенно повысить производительность выполнения операций поиска и выборки данных.

Некоторые индексы создаются автоматически, при задании первичного ключа. Например:

1) PK_contactKlienta – для таблицы «contactKlienta»;

2) PK_contactSotrudnika – для таблицы «contactSotrudnika»;

3) PK_contactType – для таблицы «contactType»;

4) PK_dniNedeli – для таблицы «dniNedeli»;

5) PK_dniRabotiSotrudnikov – для таблицы «dniRabotiSotrudnikov»;

6) PK_dolznost – для таблицы «dolznost»;

7) PK_kabinet – для таблицы «kabinet»;

8) PK_klient – для таблицы «klient»;

9) PK_sotrudnik – для таблицы «sotrudnik»;

10) PK_user – для таблицы «user»;

11) PK_usluga – для таблицы «usluga»;

12) PK_zakazanieUslugiDetalno – для таблицы «zakazanieUslugiDetali»;

13) PK_zakazinieUslugiList – для таблицы «zakazinieUslugiObshie»;

14) PK_zurnal – для таблицы «zurnal».

Представленные ключи относятся к кластеризованным и являются уникальными.

Для таблицы «contactKlienta» по столбцу «Фамилия» создадим два некластеризованных индекса. В отличие от кластеризованных индексов, они не перестраивают физическую структуру таблицы, а лишь организуют ссылки на соответствующие строки. Элементы представленных индексов будут располагаться по возрастанию. Индексы создаются вручную при помощи запроса.

Создание индекса index_reg для таблицы Клиенты:

CREATE UNIQUE NONCLUSTERED INDEX index_reg

ON Клиенты(Фамилия asc)

Представленные индексы являются уникальными.

Создание представлений

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

Одним из главных достоинств представлений является то, что они сильно упрощают взаимодействие с данными в базе данных. Допустим, необходимо каждый раз делать сложную по своей структуре выборку, и запрос на данную выборку может быть очень сложный. И если бы не было представлений, то приходилось бы каждый раз запускать этот запрос, или даже его модифицировать, например, для вставки условий. А так как есть такие объекты как представления, то этого делать не придется. Достаточно создать одно представление, и потом уже к нему можно обращаться с помощью уже простых запросов, которые также можно делать сложными, если это необходимо. Например, представления также можно объединять с другими таблицами или другими представлениями.

В данном разделе приводятся текст запроса, SQL-сценарии для создания представлений и результаты их работы в форме таблицы (или рисунка).


Поделиться:



Последнее изменение этой страницы: 2017-05-06; Просмотров: 645; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.044 с.)
Главная | Случайная страница | Обратная связь