Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Создание структуры базы данных
Структура базы данных следующая: · База данных состоит из одной или нескольких таблиц. · Каждая таблица имеет одно или несколько полей. · В каждой таблице имеется одна или несколько записей. На данном этапе были разработаны сама база данных, три таблицы и индексы. База данных и таблицы В этом разделе описаны: § алгоритм создания базы данных § алгоритмы создания всех таблиц базы данных с указанием полей, назначенных для них ограничений, обозначением первичных и внешних ключей отношений. Для начала была создана база данных в два этапа: 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; Нарушение авторского права страницы