- •Основные определения. Информация. Данные. База данных. Предметная область. Объект. Атрибут. Субд.
- •Функции субд
- •Трехуровневая архитектура бд. Уровни представления бд. Внешний, концептуальный, внутренний уровни. Теоретические основы проектирования бд. Этапы концептуального проектирования.
- •Модели представления данных. Сетевая и иерархическая модели. Преимущества и недостатки. Отношения между объектами.
- •Иерархическая
- •Сетевая
- •Модели представления данных. Реляционная модель. Основные понятия: атрибут, домен, кортеж (запись), ключ. Фундаментальные свойства отношений.
- •Основные операции реляционной алгебры – выборка, проекция, декартово произведение, объединение, разность.
- •Операция выборки
- •Операция проекции
- •Декартово произведение
- •Операция объединения
- •Операция разности
- •Дополнительные операции реляционной алгебры – – соединение, пересечение, деление.
- •Соединение
- •Операция пересечения
- •Операция деления
- •Функциональные зависимости и их свойства. Понятие реляционной целостности.
- •10. Нормализация отношений. Цель нормализации. Аномалии в отношениях. Ненормализованные отношения. Первая нормальная форма.
- •11. Нормализация отношений. Вторая и третья нормальные формы. Аномалии в отношениях.
- •12. Нормализация отношений. Нормальная форма Бойса - Кодда.
- •13. Нормализация отношений. Четвертая нормальная форма. Понятие многозначной зависимости.
- •14. Нормализация отношений. Пятая нормальная форма. Понятие зависимости соединения.
- •15. Предметная область информационной системы. Объекты и связи. Классификация связей. Теоретические основы проектирования бд. Этапы концептуального проектирования.
- •16. Семантическое моделирование данных. Семантическая модель Сущность - Связи(er).
- •6.2. Семантическое моделирование данных, er-диаграммы
- •6.2.1. Семантические модели данных
- •6.2.2. Основные понятия модели Entity-Relationship (Сущность-Связи)
- •6.2.3. Нормальные формы er-схем
- •6.2.4. Более сложные элементы er-модели
- •6.2.5. Получение реляционной схемы из er-схемы
- •17. Понятия транзакции в субд. Свойства асид. Проблемы параллельного выполнения транзакции. Понятие блокировки, методы управления параллельностью.
- •18. Язык структурированных запросов sql. Основные положения.
- •19. Язык структурированных запросов sql. Установка критериев выбора.
- •20. Язык структурированных запросов sql. Обобщение данных с помощью агрегатных функций.
- •21. Язык структурированных запросов sql. Формирование вывода запросов. Упорядочивание вывода полей.
- •Упорядочивание вывода полей
- •Упорядочивание с помощью многочисленных столбцов
- •Упорядочивание агрегатных групп
- •22. Язык структурированных запросов sql. Объединение таблиц.
- •23. Язык структурированных запросов sql. Соотнесенные подзапросы.
- •24. Язык структурированных запросов sql. Ввод, удаление и изменение значений в таблице. Создание таблицы.
- •25. Microsoft sql Server 2000. Основные концепции технологии «клиент-сервер», структура хранения данных, файлы и группы файлов. Основные объекты базы данных.
- •26. Microsoft sql Server 2000. Создание базы данных с помощью Enterprise Manager. Работа с таблицами. Ограничения целостности.
- •Ограничения целостности
- •26. Microsoft sql Server 2000. Создание базы данных с помощью Enterprise Manager. Работа с таблицами. Ограничения целостности.
- •Работа с таблицами
- •Ограничения целостности
- •27. Администрирование sql Server 2000. Терминология. Создание ролей и пользователей в бд.
- •Терминология
- •Системный администратор
- •Владелец базы данных
- •28. Microsoft sql Server 2000. Резервное копирование и восстановление. Экспорт и импорт данных.
- •29. Microsoft sql Server 2000. Создание и использование хранимых процедур и пользовательских функций.
- •31. Тенденции развития бд. Хранилища данных. Основные свойства. Архитектура, схемы хд. Понятие метаданных. Информационные потоки в хранилищах данных.
- •1. Современные информационные системы
- •Метаданные
Работа с таблицами
Для создания таблицы и определения ее структуры используется диалоговое окно New Table.
В этом окне имеется сетка для определения столбцов и их атрибутов. Для того, чтобы назначить столбец первичным ключом, нужно щелкнуть на кнопке панели инструментов Set primary key или выбрать одноименную команду из контекстного меню. В сетке задаются имя столбца, его тип данных и длина, а также указывается, может ли столбец содержать значения NULL. Остальные атрибуты определяются в области Columns, расположенной в нижней части окна.
Пример:
Создайте таблицу со следующими столбцами:
Column Name |
Data Type |
Length |
AllowNulls |
SectionId |
Int |
4 |
|
Title |
Varchar |
20 |
|
Для поля SectionId назначьте первичный ключ, а в свойствах Identity, Identity Seed и Identity Increment установите значения Yes,1,1 соответственно. Это означает, что значение первичного ключа при вводе новой записи будет автоматически увеличиваться на единицу, начиная со единицы. Сохраните таблицу под именем Section и закройте окно New Table.
Теперь в контекстном меню таблицы Section выберите пункт Open table->Return all rows. Появится диалоговое окно Data in table, предназначенное для ввода новых данных. Заполните таблицу.
Аналогично создайте таблицу Employee с полями:
EmployeeID |
Int |
4 |
|
FirstName |
Vatchar |
10 |
|
LastName |
Vatchar |
20 |
|
BirthDay |
Smalldatetime |
4 |
1 |
Money |
Money |
8 |
1 |
SectionID |
Int |
4 |
|
Для поля EmployeeID установите в свойстве Identity значение Yes и назначьте это поле первичным ключом.
Откройте диалоговое окно Table and Index Properties для таблицы Employee с помощью соответствующей кнопки на панели инструментов, либо при создании таблицы в окне New Table, либо при редактировании в окне Design Table. Выберите вкладку Indexes/Keys и создайте индекс для поля SectionID, назовите его IX_Sect. По этому полю будет осуществляться связь между таблицами.
Ограничения целостности
Ограничения целостности (constraints) гарантируют целостность данных для таблиц и столбцов.
Ограничение PRIMARY KEY (ограничение по первичному ключу) используется для обеспечения логической целостности. Оно гарантирует, что для всех строк таблицы будет существовать уникальный ключ, не равный NULL. Применение ограничения первичного ключа, кроме всего, создает уникальный индекс по таблице. В нашем случае – это индекс PK_Employee, который был автоматически создан при назначении столбца EmployeeID первичным ключом.
Ограничение NOT NULL (ограничение на неопределенное значение) используется для гарантии того, что столбец не будет содержать значений NULL.
Ограничение UNIQUE (ограничение уникальности) предотвращает появление в любом столбце или наборе столбцов повторяющихся значений, но в отличие от первичного ключа может иметь значение NULL, при том одно.
Ограничение CHECK (ограничение на значения) обеспечивает контроль значений, которые могут быть введены в столбец.
Ограничение FOREIGN KEY (ограничение по внешнему ключу) используется для ссылочной целостности. Внешний ключ связывает один или несколько столбцов с первичным ключом, который был определен для другой таблицы. Внешний ключ гарантирует, что между двумя таблицами существуют указанные отношения.
Пример:
В окне Table and Index Properties выберите вкладку Check Constraints, создайте новое ограничение на значения, в поле Constraint Expression введите:
([Money] > 350)
Это значит, что при попытке ввести в поле Money значение, меньшее 350, будет генерироваться исключение.
Для того, чтобы связать таблицы по полю SectionId, нужно для таблицы Employee создать ограничение по внешнему ключу на вкладке Relationships в окне свойств таблицы. В поле Primary Key Table нужно указать таблицу Section и выбрать из списка ее столбцов первичный ключ SectionId, а в поле Foreign Key Table выбрать таблицу Employee и ее столбец SectionId (это будет внешний ключ).
Поставьте флажок Enforce relationship for INSERTs and UPDATEs (проверка связи таблиц при вводе и изменении значений), Cascade Update Related Fields (каскадное изменение связанных полей), Cascade Delete Related Records (каскадное удаление связанных полей). Теперь при попытке ввести в таблицу Employee значение SectionId, не совпадающее ни с одним из значений первичного ключа таблицы Section, будет сгенерировано исключение, а при изменении или удалении полей таблицы Section, будут изменены или удалены и соответствующие поля таблицы Employee.
Выберите в контекстном меню таблицы Employee команду Open table->Return all rows. Заполните таблицу произвольными значениями, обратите внимание, что SQL Server не позволяет вводить в столбец SectionID значения, которых нет в столбце SectionID таблицы Section. Попробуйте удалить из таблицы Section какую-либо запись и обратите внимание, что все связанные с ней записи таблицы Employee тоже будут удалены. Правда увидеть обновленные данные таблицы Employee можно будет только после выполнения команды Run вспомогательного меню. Дело в том, что когда вы выполняете команду Return all rows для таблицы Employee, SQL Server возвращает вам результаты следующего запроса:
SELECT *
FROM employee
Текст этого запроса вы можете увидеть, нажав кнопку SQL на панели инструментов, либо выбрав пункт контекстного меню Show Panes / SQL. Вы можете отредактировать текст этого запроса, например, следующим образом:
SELECT lastname, money
FROM employee
ORDER BY money
и выполнить команду Run. Результатом запроса будет список, состоящий из имени и зарплаты каждого сотрудника, упорядоченный по полю Money.
Попытайтесь ввести в поле Money величину, меньшую 350: в этом случае SQL Server сгенерирует исключение.