Задание1. Загрузить пакет команд SQLExpression, демонстрирующий основные возможности языка Transact – SQL, который был создан ранее. С помощью команды Query/Parse Query проверить синтаксис команд пакета. Оформить пакет в виде хранимой процедуры без параметров, исполнить команду Debug в контекстном меню этой процедуры и провести ее трассировку, используя все отладочные возможности этого режима. После отладки процедуры оценить оптимальность использования ресурсов и организовать сбор статистических данных. Процедуру сохранить в базе данных master под именем sp_TestSQL.
Задание 2. Используя шаблоны Templates, создать базу данных DB Templates и один или несколько объектов всех типов, для которых имеются шаблоны. Сохранить пакет команд в файле SQLTemplates. Протестировать пакет
Задание 3. С помощью графических мастеров создать базу данных DBWizard и набор объектов всех типов для которых имеются графические мастера. Создать сценарии для базы данных DBWizard и всех ее объектов и сохранить в файле DB Script с точно такими же объектами, что и у DBWizard.
Задание 4. Используя генерацию сценариев, создать руссифицированный вариант базы данных Pubs, задав имя этой базе RusPubs.
Задание 5. Для всех таблиц баз данных Pubs и RusPubs выдать на экран справочную информацию, исполнив команду:
EXECUTE sp_help имя таблицы
Убедиться, что все справочные таблицы для соответствующих таблиц этих баз данных совпадают: таблицы с общей информацией, со свойствами кнопок, со счетчиками IDENTITY, с индексами и ссылками.
Лабораторная работа №5
Создание и обслуживание баз данных сервера
Цель работы – изучение команд и системных хранимых процедур для создания, модификации, подключения, обслуживания, отключения и удаления баз данных, а также приобретения навыков применения указанных команд, средств утилиты Enterprise Manager и мастера Create Database Wizard.
Любая пользовательская база данных создается командой CREATE DATABASE, утилитой Enterprise Manager и мастера Create Database Wizard. В любом случае для создания базы данных и для ее обслуживания нужно иметь соответствующие права. По умолчанию такими правами обладают члены фиксированных ролей сервера sysadmin и dbcreator. При необходимости такие права можно предоставить и другим пользователям. Лицо создающее базу данных,
автоматически становится ее владельцем. Имя базы данных должно точно отражать ее назначение и создаваться по правилам построения системных идентификаторов. Длина имени не более 128 символов.
При создании базы данных могут использоваться файлы трех типов: первичный (один), вторичный (ни одного или несколько) и для журнала транзакций (один или несколько, причем если он не указан, то система создает его автоматически). Для удобства обслуживания и для повышения эффективности работы базы данных можно использовать группы файлов в качестве первичных, вторичных и для журнала транзакций. И при использовании групп первичный файл только один. Определив логическую структуру файлов и их имена, необходимо определить их физические характеристики: первоначальный размер, максимальный размер и приращение, если для файла предусматривается его рост по мере накопления данных. Приращение задается в мегабайтах. Затем следует решить, в каких папках и на каких устройствах наиболее целесообразно разместить файлы. Для обеспечения распараллеливания операций ввода-ввывода файлы одной группы желательно размещать на различных устройствах. Для обеспечения максимальной защищенности от копирования информации соответствующие файлы данных следует размещать на не форматированных (сырых) разделах, которые создаются утилитой fdisk. exe MS-DOS. На таких разделах не существует файловой системы FAT или NTFS, и созданный сервером файл не доступен операционной системе.
При работе системы следует следить за наличием сводного пространства в базе данных пользователя и в системной базе tempdb, при необходимости добавляя в них новые файлы. Эта возможность обеспечивается сервером SQL Server 2000.
Помимо файлов при создании базы данных можно задать сопоставление знаков, которые будет использоваться в этой базе по умолчанию. Если сопоставление не задать, тогда будет действовать сопоставление, указанное при установке сервера. Параметр FOR LOAD оставлен для обратной совместимости со старыми версиями.
В процессе эксплуатации созданной базы данных возникает необходимость в изменении как физических параметров, так и логической структуры этой базы. К управлению базой данных на физическом уровне относится вся работа по изменению имен, размера, количества, положения файлов базы данных, усечению базы данных и журнала транзакций, созданию групп файлов, изменению группы файлов по умолчанию, изменению имени и владельца базы данных. Большинство действий по изменению конфигурации базы данных выполняется с помощью команды ALTER DATABASE. Для уменьшения размера базы данных можно также использовать команды DBCC SHRINKDATABASE, DBCC SHRINKFILE и системная хранимая процедура sp_dboption. На логическом уровне изменяются такие параметры, как выполнение автоматического усечения журнала транзакций, автоматическое создание и обновление статистики, возможность выполнения вложенных триггеров и т. п. – всего 22 параметра. Изменять эти параметры можно командой ALTER DATABASE с параметром SET и процедурой sp_dboption.
Сервер позволяет отсоединять (sp_detach) и присоединять (sp_attach_db) до 32767 баз данных, изменять владельца (sp_changedbowner), просматривать свойства (sp_dboption и DATABASEPROPERTY), получать справки (sp_helpdb) и т. д.
Задание 1. Создать базу данных для учета продаж с именем Sales, используя один файл данных с именем Sales_dat и один файл для журнала транзакций с именем Sales_log, расположив их в папке \Data, созданной при установке сервера. Физические характеристики файлов таковы:
Физическая характеристика | Sales_dat | Sales_log |
Размер файла | 10 | 5 |
Максимальный размер файла | 50 | 25 |
Приращение | 5 | 5 |
Одним из вариантов реализации этого задания с использованием языка Transact-SQL может быть такой:
USE master -- эта системная база необходима при создании; GO
CREATE DATABASE Sales
ON (NAME = Sales_dat,
FILENAME = ‘c:\Program Files\Microsoft SQL Server\Mssql\Data\Saledat. mdf’,
SIZE = 10, -- по умолчанию МВ;
MAXSIZE = 50, FILEGROWTH = 5)
LOG ON (NAME = Sales_log,
FILENAME = ‘c:\Program Files\Microsoft SQL Server\Mssql\Data\Salelog. ldf’,
SIZE = 5MB,
MAXSIZE = 25MB, FILEGROWTH = 5MB)
GO
Задание 2. Проанализировать объекты созданной базы данных, удалить ее командой
DROP DATABASE Sales и заново создать ее, используя мастер базы данных:
1. В утилите Enterprise Manager щелкните по кнопке Run a Wizard.
2. В открывшемся диалоговом окне выберите папку Database и мастер Create
Database Wizard.
3. В новом окне определяется последовательность шагов по созданию базы данных:
а) задание имени новой базы данных;
б) описание одного или нескольких файлов данных;
в) определение физических характеристик файлов данных;
г) описание одного или нескольких файлов для журнала транзакций;
д) определение физических характеристик файлов для журнала транзакций.
4. Щелкните по кнопке Next.
5. В поле Database name задайте имя базы данных Sales.
6. В поле Database file location задайте или выберите папку для размещения файлов данных:
c:\Program Files\Microsoft SQL Server\Mssql\Data.
7. В поле Transaction Log location задайте или выберите папку для размещения файлов журнала транзакций:
c:\Program Files\Microsoft SQL Server\Mssql\Data.
8. Щелкните по кнопке Next.
9. Задайте имя файла данных и его размер: File Name = Sales_dat Initial Size(MB)
10. Щелкните по кнопке Next.
11. Установите переключатель Automatically grow the database files и задайте приращение Grow the files in megabytes(MB) = 5, а максимальный размер файла данных Restrict file growth to
MB = 50.
12. Щелкните по кнопке Next.
13. Задайте имя файла для журнала транзакций и его размер:
File Name = Sales_log Initial Size(MB) = 5
14. Щелкните по кнопке Next.
15. Установите переключатель Automatically grow the transaction log files и задайте приращение Grow the files in megabytes(MB) = 5, а максимальный размер файла данных Restrict file growth to
MB = 25.
16. Щелкните по кнопке Next.
17. Проверьте параметры создаваемой базы данных.
18. Если какие-либо параметры заданы не верно, то с помощью кнопок <Back возвратитесь в нужное место и исправьте параметр, а затем повторите нужные шаги.
19. Если параметры заданы правильно, то щелкните по кнопке Finish.
20. Проанализируйте объекты созданной базы данных и с помощью контекстного меню выбранного объекта, исполнив команду All Tasks/Generate SQL Scripts, создайте сценарий создания этого объекта.
21. Запишите сценарии всех созданных объектов в папку c:\Abc\Script\NewDB. sql для последующего анализа.
22. Просмотрите файл с транзакциями и проанализируйте его начальное состояние.
23. Проанализируйте содержимое 18 системных таблиц вновь созданной базы данных, используя команду SELECT:
SELECT * имя таблицы
Здесь имя таблицы может быть таким: sysallocation, syscoloumns, syscomments, sysfilegroups, sysfiles, sysobjects, syspermissions, systypes, sysusers.
Задание 3. Удалить созданную базу данных командой DROP DATABASE Sales и заново создать ее, используя утилиту Enterprise Manager:
1. В контекстном меню папки Database(меню открывается после щелчка правой кнопки мыши по этой папке) выберите пункт New Database.
2. В открытом окне Database Properties на вкладке General в поле Name задайте имя создаваемой базы данных Sales.
3. Выберите вкладку Data Files и задайте все параметры файла данных Sales_dat
(первичного файла).
4. Выберите вкладу Transaction Log и задайте все параметры файла для журнала транзакций Sales_log.
5. Щелкните по кнопке ОК, а затем Apply.
6. Убедитесь, что создана новая база данных с требуемыми параметрами.
Задание 4. Создать базу данных с именем Archive, используя три файла данных по 100
Мбайт и два файла для журнала транзакций также по 100 Мбайт, выполнив следующие команды
Transact-SQL:
USE master
GO
CREATE DATABASE Archive
ON PRIMARI
(NAME = Arch 1,
FILENAME = ‘c:\program files\…\data\archdar1.mdf’, SIZE = 100MB,
MAXSIZE = 200MB, FILEGROWTH = 20MB),
(NAME = Arch 2, -- вторичные файлы *.ndf: FILENAME = ‘c:\program files\…\data\archdat2.ndf’, SIZE = 100MB,
MAXSIZE = 200MB,
FILEGROWTH = 20MB), (NAME = Arch 3,
FILENAME = ‘c:\program files\…\data\archdat3.ndf’, SIZE = 100MB,
MAXSIZE = 200MB, FILEGROWTH = 20MB),
LOG ON
(NAME = Arch log 1,
FILENAME = ‘c:\program files\…\data\archlog1.ldf’, SIZE = 100MB,
MAXSIZE = 200MB, FILEGROWTH = 20MB),
(NAME = Arch log2,
FILENAME = ‘c:\program files\…\data\archlog2.ldf’, SIZE = 100MB,
MAXSIZE = 200MB, FILEGROWTH = 20MB) GO
Задание 5. Создать базу данных с именем Products, задавая только файл данных
Prodact_dat размером в 4 Мбайт, выполнив следующие команды Transact-SQL:
USE master
GO
CREATE DATABASE Products
ON
(NAME = Prod_dat,
FILENAME = ‘c:\program files\…\data\prods. mdf’, SIZE = 4,
MAXSIZE = 10, FILEGROWTH = 1),
GO
Убедиться, что файл для журнала транзакций создан автоматически и что его размер составляет 1Мбайт. Найти его место расположение и определить его размер и другие физические характеристики, а также его логическое имя.
Задание 6. Создать базу данных с именем MyTest, не указывая ни первичного файла данных, ни файла для журнала транзакций, выполнив команду:
USE master
GO
CREATE DATABASE MyTest
GO
Найти файлы базы данных и убедиться, что их характеристики совпадают с характеристиками файлов базы данных model, которая является системной базой данных.
Задание 7. Создать базу данных с именем Products 2, не задавая физические характеристики файла данных и не указывая файла для журнала транзакций, выполнив команды:
USE master
GO
CREATE DATABASE Products 2
ON
(NAME = Product 2_dat,
FILENAME = ‘c:\Program files\…\Prods 2.mdf’) GO
Найти файлы базы данных и убедиться, что их характеристики совпадают с характеристиками файлов системной базы данных model.
Задание 8. Создать базу данных с именем Sales, используя три группы файлов,
выполнив следующие команды:
USE master
GO
CREATE DATABASE Sales
ON PRIMARI
(NAME = SPrim1_dat,
FILENAME = ‘c:\Program Files\…\Data\SPrim1dat. mdf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 15%),
(NAME = Sprim2_dat,
FILENAME = ‘c:\ Program Files\…\Data\SPrim2dat. mdf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 15%),
FILEGROUP SalesGroup1 (NAME = SGrp1Fil1_dat,
FILENAME = ‘c:\Program Files\…\Data\ SGrp1Fil1dat. ndf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5),
(NAME = SGrp1Fil2_dat,
FILENAME = ‘c:\Program Files\…\Data\ SGrp1Fil2dat. ndf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5),
FILEGROUP SalesGroup2 (NAME = SGrp2Fil1_dat,
FILENAME = ‘c:\Program Files\…\Data\ SGrp2Fil1dat. ndf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5),
(NAME = SGrp2Fil2_dat,
FILENAME = ‘c:\ Program Files\…\Data\ SGrp2Fil2dat. ndf’, SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5),
(NAME = Sales_log,
LOG ON
FILENAME = ‘c: :\ Program Files\…\Data\ Sales log. ldf \’, SIZE = 5,
MAXSIZE = 25, FILEGROWTH = 5),
GO
Найдите все файлы базы данных Sales и проверьте их физические характеристики.
Задание 9. Отсоедините базу данных от сервера, выполнив системную хранимую процедуру sp_detach_db:
GO
EXEC sp_detach_db Sales
GO
Подсоедините вновь эту базу к серверу с помощью команды CREATE DATABASE,
используя опцию FOR ATTACH: GO
CREATE DATABASE Sales
ON PRIMARY (FILENAME =‘c:\Program Files\…\Data\SPrim1dat. mdf’) FOR ATTACH
GO
Повторите эти операции, используя системную хранимую процедуру sp_attach_db.
Задание 10. Создать базу данных с именем Employees, используя неформатированные разделы, выполнив команды:
USE master
GO
CREATE DATABASE Employees
ON
(NAME = Empl_dat,
FILENAME = ‘f:’ ,-- или ‘d:\sample data dir\’; SIZE = 10,
MAXSIZE = 50, FILEGROWTH = 5),
LOG ON
(NAME = Sales_log,
FILENAME = ‘g:’,-- или ‘d:\sample log dir\’; SIZE = 5,
MAXSIZE = 25, FILEGROWTH = 5)
GO
Лабораторная работа №6
Проектирование логической структуры базы данных
Цель работы – ознакомление с основными понятиями и моделями баз данных, используемых в различных информационных системах, и приобретение навыков информационного проектирования реляционных баз данных с использованием стандартов на терминологию и графические элементы диаграмм.
В широком смысле слова база данных – совокупность сведений о конкретных объектах какой-либо предметной области, представляющей часть реального мира, в которой возникают
проблемы организации управления и автоматизации обработки информации. Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать нужные сведения с произвольным сочетанием признаков. Для этих целей нужна структуризация исходных данных.
Объект предметной области – это нечто существующее и различаемое. Объектами могут быть материальные предметы, а также и абстрактные понятия.
Данные – это определенные показатели, которые характеризуют объект и принимают, для конкретного экземпляра этого объекта некоторый набор значений. Например, объектом является продукция предприятия, а данными, или атрибутами этого объекта являются код, название, цвет, вес и т. д.
В современном понимании база данных – это поименованная совокупность взаимосвязанных данных, находящихся под управлением системы управления базами данных, представляющей комплекс программных и языковых средств, необходимых для создания баз данных, поддерживая их в актуальном состоянии и организуя поиск в них нужной информации. База данных – это основа любой информационной системы.
Используя базу данных, информационная система обеспечивает хранение информации по предметной области, ее ввод и редактирование, просмотр и поиск нужных сведений, выборку данных по тем или иным критериям, получение итоговых отчетов и контроль целостности информации. Различают информационно-поисковые системы, в которых поисковые операции являются основными, и системы обработки данных, в которых обработка данных занимает основную часть машинного времени. При этом некоторые из них работают с конкретными наборами структурированных данных (фактами) и относятся к классу фактографических систем, другие работают с неструктурированными или слабоструктурированными текстовыми документами и осуществляют поиск необходимых документов или объектов. Они получили название документальных систем. Существуют и смешанные, документально-фактографические системы.
Информационные системы создаются либо на одном компьютере (локальная система), либо с использованием нескольких компьютеров, объединенных в сеть (сетевые системы). Сетевые информационные системы могут иметь распределенную архитектуру, когда части базы данных располагаются на различных компьютерах сети, и централизованную архитектуру, когда база данных находится на одном мощном компьютере, а менее мощные клиентские компьютеры обмениваются с центральным либо файлами (архитектура файл-сервер), либо небольшими порциями данных, формируемых по запросу пользователей сети (архитектура клиент-сервер). Центральный компьютер, где хранится общая база данных и программа обработки запросов, составляет серверную часть системы (back-end), а машины пользователей, где формируются запросы и отображаются данные, составляют клиентскую часть системы (front-end).
С самых первых версий Microsoft SQL Server проектировалась как система управления централизованными базами данных с использованием архитектуры клиент-сервер. SQL Server
2000 вместе с тем позволяет строить и распределенные базы данных.
При разработке базы данных необходимо выбрать подходящую модель данных. Модель данных – это совокупность структур данных и операций по их обработке. С помощью модели данных можно наглядно представить структуру объектов и установленные между ними связи. В настоящее время используются следующие три модели данных:
1. иерархическая модель данных, в которой структура объектов представляется в виде дерева, например, дерево папок и файлов файловой системы MS-DOS, или дерево ключей и параметров операционной системы Windows. В этой модели каждый потомок может иметь только одного предка.
2. сетевая модель данных, в которой структура объектов представляется в виде сети, когда каждый объект – узел может быть связан с любым другим объектом, в том числе и с самим собой, например, сеть Word Wide Web (www) или гипертекстовые файлы. В этой модели каждый объект может иметь несколько входных связей с другими объектами.
3. реляционная модель данных, в которой данные представлены в виде прямоугольных таблиц (отношений) и вес операции над базой данных сводятся к манипуляциям с таблицами. Эта модель данных получила самое широкое распространение в
современных базах данных. SQL Server 2000 также использует реляционную модель данных.
Таблица состоит из столбцов (полей) и строк (записей). Она имеет имя, уникальное в пределах базы данных. Таблица определяет тип объекта реального мира (сущность), а каждая строка – конкретный объект. Столбец при этом представляет совокупность значений конкретного атрибута рассматриваемых объектов. Эти значения выбираются из множества допустимых значений, или домена. Каждый столбец имеет имя, уникальное в пределах таблицы. При графическом изображении таблицы он записывается в ее верхней части. В отличие от полей, строки не имеют имен; порядок их следования в таблице не определен, а количество строк в таблице логически не ограничено.
Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции. Любая таблица должна иметь один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Столбец или комбинация столбцов, обладающая таким свойствам называется первичным ключом. Таким образом, он должен обладать свойством уникальности. Другим свойством первичного ключа должно быть свойство минимальности, когда ни одна из входящих в ключ столбцов не может быть исключен из ключа без нарушения свойства минимальности.
В таблице могут быть и другие группы столбцов, обладающие данными свойствами. Они называются альтернативными ключами, или кандидатами на первичный ключ. Выбор первичного ключа из возможных кандидатов на первичный ключ является в известной мере произвольным.
Для поддержания связей между таблицами используются внешние ключи, когда в данной таблице используются поля, являющиеся первичными ключами других таблиц.
Итак, реляционная база данных – это совокупность таблиц (отношений), содержащих всю информацию, которая храниться в базе данных. Основные требования, которые надо соблюдать при проектировании реляционных баз данных, таковы:
1. каждая таблица должна иметь уникальное в базе данных имя и состоять из однотипных строк.
2. каждая таблица должна состоять из фиксированного числа столбцов и простых (не составных) значений в каждом столбце.
3. ни в какой момент времени в таблице не должно быть двух строк, дублирующих друг друга. Строки должны отличаться хотя бы одним значением, чтобы была
возможность однозначно идентифицировать любую строку таблицы.
4. каждому столбцу должно быть присвоено уникальное в пределах таблицы уникальное имя и задан конкретный тип данных.
5. полное информационное содержание базы данных должно быть представлено в виде явных значений самих данных и только таким образом, а не с использованием, например, указателей или ссылок.
6. при обработке данных должно быть обеспечено свободное обращение к любой строке и к любому столбцу.
При проектировании базы данных на основании описания бумажных форм и бланков необходимо разработать простую структуру таблиц, которая позволяет устранить дублирование данных и обеспечивает непротиворечивость хранимых в базе данных. Для этих целей используется формальный аппарат ограничений на формирование таблиц, описывающий разбиение таблиц на две или более частей и обеспечивающий применение лучших методов добавления, изменения и удаления данных. Этот аппарат называется нормализацией таблиц. Его конечной целью является получение такой структуры таблиц, для которой любая часть информации хранится лишь в одном месте, т. е. исключается избыточность информации. Это делается не для экономии места, а для исключения возможности противоречий в хранимых данных. В итоге нормализации иерархическая или сетевая структура данных превращается в реляционную. Существует шесть форм нормализации. На практике бывает необходимо и достаточно привести базу данных к третьей нормальной форме.
Таблица считается нормализованной на определенном уровне, когда она удовлетворяет условиям, накладываемым соответствующей формой нормализации. Рассмотрим первые три уровня нормализации:
1. таблица находится в первой нормальной форме, когда она не содержит повторяющихся полей и составных значений полей.
2. таблица находится во второй нормальной форме, если она удовлетворяет требованиям первой нормальной формы и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.
3. таблица находится в третьей нормальной форме, если она удовлетворяет требованиям второй нормальной формы и ни одно из ее неключевых полей функционально не зависит от любого другого неключевого поля. Таким образом, это дополнительное требование сводится к тому, чтобы все неключевые поля зависили только от первичного ключа и не зависили друг от друга. Это обеспечивает независимое изменение любого неключевого поля.
Задание 1. построить инфологическую модель предметной области. Включающей несколько объектов с тремя – пятью атрибутами и необходимыми связями, выполнив все шаги построения модели в виде IDEF1X – диаграммы:
1. Определение сущностей. Первый шаг при построении модели – извлечение информации из интервью и выделение объектов, или сущностей.
Каждая сущность должна обладать уникальным идентификатором. Каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других экземпляров данного типа сущности. Каждая сущность должна обладать следующими свойствами:
а) иметь уникальное имя с одной и той же интерпретацией, причем одна и та же интерпретация не может применяться к различным именам, если только они не являются псевдонимами;
б) обладать одним или несколькими атрибутами, которые либо принадлежат сущности,
либо наследуются через связь;
в) обладать одним или несколькими атрибутами, которые однозначно идентифицируют каждый экземпляр сущности;
г) каждая сущность может обладать любым количеством связей с другими сущностями предметной области.
На диаграмме сущность изображается прямоугольником с указанием ее имени и номера слева над прямоугольником, например, «Группа/1».
2. Идентификация атрибутов. Атрибуты сущности должны иметь уникальные в пределах сущности имена, а также принадлежать к одному из типов данных, допустимых для модели. Имена и типы записываются, в прямоугольник и отделяются горизонтальной линией, при этом в верхней части записываются и выделяются жирным шрифтом атрибуты, составляющие первичный ключ. Альтернативные ключи сущности особо не выделяются на прямоугольнике. Ни одна из частей ключа не может быть NULL, не заполненной или отсутствующей.
Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком базы данных на основании анализа предметной области.
Правила выбора первичного ключа из списка предполагаемых ключей таковы: а) он должен уникальным образом идентифицировать экземпляр сущности; б) он не может принимать значение NULL;
в) он не должен изменяться со временем, ибо при изменении ключа меняется и экземпляр сущности;
г) он должен быть как можно более коротким для индексирования данных.
Сущность является независимой, если каждый экземпляр сущности может быть однозначно идентифицирован без определения его отношений с другими сущностями.
Сущность называется зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности. На диаграмме она изображается прямоугольником с закругленными углами.
Экземпляры независимой сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями. Экземпляры зависимой сущности, наоборот, не могут быть идентифицированы без определения ее связей с другими сущностями.
3. Определение зависимостей (связей) между сущностями. Связь – это ассоциация между сущностями, при которой, как правило, каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью – потомком, а каждый экземпляр сущности – потомка ассоциирован в точности с одним экземпляром сущности – родителя. Таким образом, экземпляр сущности
– потомка может существовать только при существовании сущности – родителя.
Связь изображается линией между сущностями, и ей дается уникальное для данной пары сущностей имя в виде оборота глагола, например, «состоит», «является» и т. д. Имя связи всегда формируется с точки зрения родителя.
Связь – это понятие логического уровня, которому соответствует внешний ключ на физическом уровне.
Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при этом является всегда зависимой. Идентифицирующая связь изображается сплошной линией и заканчивается точкой со стороны дочерней сущности.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности. Такая связь изображается пунктирной линией с точкой у дочерней сущности.
Служащий /1 Группа/1
Номер служащего
Имя
Дата рождения
N_группы
ФИО_старосты ФИО_куратора Количество студентов
Де
Номер_служащего(FК)
Имя ребенка
Дата_рождения/2
Номер_зач_книжки
Номер_группы
ФИО Адрес Год_рождения
а) идентифицирующая связь б) неидентифицирующая связь
Рис. 1 Пример связей
Связи дополняются указанием мощности, определяющей, какое количество экземпляров сущности – потомка может существовать для каждого экземпляра сущности – родителя:
Z – нуль или один; P – один или более; N – в точности N.
Если мощность не задана, то предполагается нуль, один и более экземпляров.
Задание 1. Создать базу данных «Отдел» с таблицами «Служащие» и «Дети» в соответствии с рисунком 1а, учитывая связи между этими таблицами, и заполнить таблицы данными.
Задание 2. Создать базу данных «Деканат», взяв за основу инфологическую диаграмму рисунка
1б, и заполнить данными. Написать и исполнить несколько запросов.
Задание 3. Создать базу данных «Учет товаров на складе», включив в нее три таблицы:
а) таблицу «Товар» с реквизитами Название товара, Единица измерения,
Цена единицы измерения;
б) таблицу «Расход товара» с реквизитами
Номер расхода, Дата расхода, Количество расхода, Название товара, Название покупателя;
в) таблицу «Покупатели» с реквизитами
Название покупателя, Город покупателя, Адрес покупателя.
Задать первичные и внешние ключи, а также необходимые ограничения целостности.
Построить диаграмму. Таблицы заполнить данными.
Задание 4. Построить диаграмму базы данных Northwind, включив в нее все таблицы и не допуская пересечений линий связи. Определить порядок создания аналогичных руссифицированных таблиц новой базы данных Нордост. Создать базу данных Нордост с указанными таблицами, сохранив типы колонок таблиц и связи между таблицами. Построить диаграмму базы данных Нордост. Используя команды Select и Insert, скопировать данные из таблиц Northwind в таблицы Нордост. Сравнить таблицы этих баз данных.
Лабораторная работа №7
Создание, модификация и удаление таблиц
Цель работы – изучение команд и системных хранимых процедур для создания, изменения структуры, просмотра свойств и удаления таблиц, а также приобретения навыков применения указанных команд и процедур, средств утилиты Enterprise Manager и мастера Create Database Diagram Wizard для создания и просмотра диаграммы баз данных.
Данные баз данных хранятся в таблицах. Таблица представляет собой совокупность столбцов (полей), в которых хранятся атрибуты объектов предметной области. Все значения атрибутов какого-либо объекта образуют строку (запись). Любая пользовательская таблица создается либо командой Transact-SQL CREATE TABLE, либо с помощью графической утилиты Enterprise Manager. И в том, и в другом случае необходимо задать имя таблицы, перечислить имена столбцов, задать тип данных для каждого столбца, упорядоченность символов для сортировки символьных данных, значения по умолчанию, а также ограничения на столбцы или таблицу в целом. Типы данных для таблиц и виды ограничений рассмотрены в лабораторной работе №2. При открытии папки Tables базы данных в правом окне Enterprise Manager появляется список таблиц со следующими атрибутами: имя таблицы, владелец (обычно владелец базы данных data base owner-dbo), тип (пользовательская или системная) и дата создания таблицы. Для просмотра самой таблицы следует дважды щелкнуть по ней или в ее контекстном меню исполнить команду Properties. В открывшемся окне представлены все свойства таблицы и ее столбцов. Кнопка Permission позволяет просмотреть и отредактировать права доступа к таблице: SELECT, INSERT, UPDATE, DELETE, EXES и DRI. Щелкнув по столбцу таблицы, можно просмотреть и отредактировать права доступа к столбцу. Если установлена на сервере служба MSSearch, то с помощью вкладки Full-text Indexing можно отредактировать параметры этой службы.
При проектировании таблиц часто бывает необходимо обеспечить автоматическое генерирование уникальных значений. Для этих целей можно использовать один из следующих способов:
а) для столбца задать ограничение целостности IDENTITY с двумя параметрами: начальное значение и шаг приращения; это обеспечит автоматическое создание нового значения при каждой очередной вставке строки;
б) использовать столбцы со свойством timestamp, которое обеспечит для столбца генерирование значений, уникальных в пределах базы данных;
в) задать для столбца свойство rowquidcol, что обеспечит генерирование для каждой новой строки глобального уникального идентификатора, занимающего 16
байт.
Изменить структуру таблицы можно либо с помощью команды ALTER TABLE, либо с помощью утилиты Enterprise Manager, при этом следует соблюдать ряд ограничений: нельзя удалять столбцы с типом данных image, text, ntext, timestamp, rowquidcol, вычисляемые столбцы, индексные столбцы и т. д. Командой DELETE TABLE и той же утилитой можно удалить любую таблицу. Но прежде, чем это сделать, необходимо удалить все объекты базы данных, которые ссылаются на данную таблицу, либо изменить их таким образом, чтобы они не ссылались на удаляемую таблицу. Для удаления таблицы средствами утилиты Enterprise Manager необходимо в контекстном меню таблицы, которую надо удалить, исполнить команду Delete, убедиться, что удаляемая таблица не имеет связей с какими-либо другими объектами базы данных, и затем удалить таблицу.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


