Ответы 09.04. ответы_8_раздел. 8 Раздел. Базы данных Этапы проектирования базы данных
![]()
|
1 2 DDL – Data Definition LanguageData Definition Language (DDL) – это группа операторов определения данных. Другими словами, с помощью операторов, входящих в эту группы, мы определяем структуру базы данных и работаем с объектами этой базы, т.е. создаем, изменяем и удаляем их. В эту группу входят следующие операторы: CREATE – используется для создания объектов базы данных; ALTER – используется для изменения объектов базы данных; DROP – используется для удаления объектов базы данных. 14. Реляционная алгебра и язык SQL. Реляциционная алгебра состоит из операций над отношениями и их составляющими (атрибутами и кортежами). Результат любой операции реляционной алгебры - новое отношение. Такие системы операций называются замкнутыми. Рассмотрим семь основных операций (рис. 1) реляционной алгебры. Они разделены на две группы. В первую входят операции, совершаемые над любыми множествами: объединение, пересечение, разность декартово произведение. Во вторую группу входят операции, применимые только к отношениям: выборка, проекция, соединение.
Объединение - операция над двумя отношениями, в результате которой получается новое отношение, состоящее из всех кортежей исходных отношений. Общие для исходных отношений кортежи в новом отношении встречются только по одному разу. Пересечение - операция над двумя отношениями, в результате которой получается новое отношение, состоящее из кортежей, принадлежащих обоим исходным отношениям. Разность - операция над двумя отношениями, в результате которой получается новое отношение, состоящее из кортежей, принадлежащих первому отношению и не принадлежащих второму. Декартово произведение - операция над двумя отношениями, в результате которой получается новое отношение, состоящее из всех возможных кортежей, являющихся попарными сочетаниями кортежей исходных отношений. Операции объединения, пересечения и разности имеют следующие особенности: участвующие в операции отношения должны иметь одинаковое количество атрибутов; попарно соответствующие атрибуты отношений должны иметь одинаковый тип; наименование каждого атрибута отношения-результата может быть либо новым, либо наследовать имя атрибута одного из исходных отношений. Выборка производится над кортежами одного отношения. Результат выборки - новое отношение, состоящее из котежей исходного отношения, удовлетворяющих заданному условию. Проекция также производится над кортежами одного отношения. Результат проекции - новое отношение содержащее только заданные атрибуты исходного отношения. Соединение - операция над двумя отношениями, имеющими общие атрибуты, в результате которой получается новое отношение, состоящее из всех атрибутов исходных отношений и объединяющее только те кортежи исходных отношений в которых значения общих атрибутов совпадают. Семантически общие атрибуты описывают общие свойства соединяемых отношений. Общие атрибуты должны иметь один тип Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language). Язык SQL использует синтаксис, близкий к фразам английского языка. Все СУБД, претендующие на название "реляционные", реализуют тот или иной диалект SQL. Целью стандартизации является переносимость приложений между различными СУБД. Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории. Например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "столбцы". Операторы SQL. Основу языка SQL составляют операторы, разбитые на две группы по общности выполняемых функцияй: Операторы DDL (Data Definition Language) - операторы определения объектов базы данных: · CREATE TABLE - создать таблицу, · ALTER TABLE - изменить таблицу, · DROP TABLE - удалить таблицу, · CREATE DOMAIN - создать домен, · ALTER DOMAIN - изменить домен, · DROP DOMAIN - удалить домен, · CREATE VIEW - создать представление, · DROP VIEW - удалить представление. Операторы DML (Data Manipulation Language) - операторы манипулирования данными: · SELECT - отобрать строки из таблиц, · INSERT - добавить строки в таблицу, · UPDATE - изменить строки в таблице, · DELETE - удалить строки в таблице, · COMMIT - зафиксировать внесенные изменения, · ROLLBACK - откатить внесенные изменения. Любая операция реляционной алгебры может быть выражена одним оператором SELECT. 15. Добавление, удаление, изменение данных в SQL. ![]() ![]() ![]() ![]() 16. Структура и примеры операторов Операторы SQL. Основу языка SQL составляют операторы, разбитые на две группы по общности выполняемых функцияй: Операторы DDL (Data Definition Language) - операторы определения объектов базы данных: · CREATE TABLE - создать таблицу, · ALTER TABLE - изменить таблицу, · DROP TABLE - удалить таблицу, · CREATE DOMAIN - создать домен, · ALTER DOMAIN - изменить домен, · DROP DOMAIN - удалить домен, · CREATE VIEW - создать представление, · DROP VIEW - удалить представление. Операторы DML (Data Manipulation Language) - операторы манипулирования данными: · SELECT - отобрать строки из таблиц, · INSERT - добавить строки в таблицу, · UPDATE - изменить строки в таблице, · DELETE - удалить строки в таблице, · COMMIT - зафиксировать внесенные изменения, · ROLLBACK - откатить внесенные изменения. Любая операция реляционной алгебры может быть выражена одним оператором SELECT. Оператор Select осуществляет вычисление выражений как реляционной, так и псевдореляционной алгебры. В данном курсе мы рассмотрим реализацию только уже пройденных нами унарных и бинарных операций реляционной алгебры, а также осуществление запросов, с помощью так называемых подзапросов. Кстати, необходимо заметить, что в случае работы с операциями реляционной алгебры в результирующих отношениях могут появляться дублирующие кортежи. В правилах языка структурированных запросов нет строгого запрещения на присутствие повторяющихся строк в отношениях (в отличие от обычной реляционной алгебры), поэтому исключать дубликаты из результата не обязательно. Итак, рассмотрим базовую структуру оператора Select. Она достаточно проста и включает в себя следующие стандартные обязательные фразы: Select … From … Where … ; На месте многоточия в каждой строчке должны стоять отношения, атрибуты и условия конкретной базы данных и задания к ней. В самом общем случае базовая структура Select должна выглядеть следующим образом: Select выбрать такие-то атрибуты From из таких-то отношений Where с такими-то условиями выборки кортежей Таким образом, выбираем мы атрибуты из схемы отношений (заголовки некоторых столбцов), при этом указывая, из каких отношений (а их, как видно, может быть несколько) мы производим нашу выборку и, наконец, на основании каких условий мы останавливаем свой выбор на тех или иных кортежах. Важно заметить, что ссылки на атрибуты происходят с помощью их имен. Таким образом, получается следующий алгоритм работы этого базового оператора Select: 1) запоминаются условия выборки кортежей из отношения; 2) проверяется, какие кортежи удовлетворяют указанным свойствам. Такие кортежи запоминаются; 3) на выход выводятся перечисленные в первой строчке базовой структуры оператора Select атрибуты со своими значениями. (Если говорить о табличной форме записи отношения, то выведутся те столбцы таблицы, заголовки которых были перечислены как необходимые атрибуты; разумеется, столбцы выведутся не полностью, в каждом из них останутся только те кортежи, которые удовлетворили названным условиям.) Рассмотрим пример. Пусть нам дано следующее отношение r1, как фрагмент некой базы данных книжного магазина: ![]() Пусть также нам дано следующее выражение с оператором Select: Select Название книги, Автор книги From r1 Where Цена книги > 200; Результатом этого оператора будет следующий фрагмент кортежа: (Мобильник, С. Кинг). (В дальнейшем мы подвергнем рассмотрению множество примеров реализации запросов с использованием этой базовой структуры и ее применение изучим очень подробно.) 17. Модели данных ![]() 18. Схемы и подсхемы ![]() ![]() 19. Целостность данных. ![]() ![]() 20. Ограничения целостности ![]() ![]() 21. Основные виды связей между различными типами объектов. ![]() ![]() 22. Структура баз данных Структуру базы данных составляют таблицы и связи между ними — схема данных. Связь (отношение) устанавливается между двумя полями таблиц, причем эти поля должны быть одного типа и одного размера. Перед заданием связей необходимо закрыть таблицы, так как невозможно установить связи между открытыми (редактируемыми) таблицами. Связи таблиц в реляционных базах данных бывают: «один-к-одному» и «один-ко-многим». Отношение типа «один-к-одному» устанавливается между двумя первичными ключами разных таблиц, каждой записи одной таблицы соответствует одна запись другой. Отношение типа «один-ко-многим» — между первичным ключом одной таблицы и ключом другой таблицы (наиболее широко распространены), каждой записи одной таблицы может соответствовать несколько записей другой. Одна таблица определяется как главная, другая – подчиненная. Отношение типа «многие-ко-многим» - каждой записи одной таблицы может соответствовать несколько записей другой и наоборот. Это сетевые групповые отношения, не могут поддерживаться в реляционных БД. Обычно реализуются через третий объект, с которым исходные объекты связаны соотношением «один-ко-многим». Две записи связаны, если значения связанных полей у них полностью совпадают. ![]() Создание связей между таблицами осуществляется через специальное диалоговое окно, которое называется Схема данных. Это окно открывается щелчком на одноименной кнопке панели инструментов или через меню Сервис. Затем добавляют все таблицы, которые надо связать. Связь между полями устанавливают путем перетаскивания имени поля из одной таблицы в другую на соответствующее ему связанное поле. При этом открывается возможность задать свойства образующейся связи: обеспечение целостности данных – т.е. 1. в подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи; 2. в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице; 3. в главной таблице нельзя изменить значение ключа связи, если в подчиненной таблице имеются связанные с ней записи. Если для выбранной связи активизируется Обеспечение целостности данных, то можно задать следующие режимы: каскадное обновление связанных полей и каскадное удаление связанных записейобеспечивают одновременной обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице. (Например, если изменилась фамилия какой-то клиентки, то вносятся изменения только в одну таблицу, а в связанные с ней изменения вносятся автоматически.) 23. Таблицы, поля, типы данных, свойства полей. Вся информация в базе данных хранится в таблицах. Таблицы это обычные таблицы для хранения данных. Таблицы состоят из записей. Запись это строка в таблице. Вся информация обрабатывается по записям. Каждая запись состоит из полей. Поле это столбец таблицы. Каждое поле имеет три характеристики: Имя поля - используется для обращения к полю; Значение поля - определяет информацию, хранимую в поле; Тип данных поля - определяет какой вид информации можно хранить в поле. В SQL сервер используются следующие типы данных: Битовые типы данных, которые содержат последовательности нулей и единиц: Binary(n) и Varbinary(n), где n длина. Длина содержимого полей типа Binary всегда равна n, разница заполняется пробелами. Varbinary размер поля равен n или меньшему; Целочисленные типы данных - типы данных для хранения целых чисел (в скобках указан диапазон значений типа данных, примерно): Tinyint (0-255), Smallint (±215), Int (±231), Bigint (±263); Типы данных для хранения дробных чисел: Real семь знаков после запятой, Float(m) может хранить числа из m знаков, максимальное m=38, Decimal(m, n) дробные числа с m всего знаков и n после запятой; Специальные типы данных: Bit - логический тип данных.является заменой логическому типу Boolean в Visual Basic, Text - тип для хранения больших объемов текста, одно поле может хранить до 2 Гб текста, Image - тип данных для хранения до 2Гб рисунков, RowGUID - уникальный идентификатор строки таблицы, SQL_Variant - аналогичен типу Variant в Visual Basic; Типы данных даты и времени: Datetime (1 января 1753 года — 31 декабря 9999 года). SmallDatetime (от 1.01.1900 до 06.06.2079); Денежные типы данных для хранения финансовой информации: Money (от -922 337 203 685 477,5808 до 922 337 203 685 477,5807), Smallmoney (от -214 748,3648 до 214 748,3647); Автоматически обновляемые типы данных - аналоги счетчиков, но в данной роли они не используются: RowVersion уникальный идентификатор строки. TimeStamp - закодированное дата и время создания строки. 24. Способы создания и редактирования таблиц. ![]() 25. Первичные и внешние ключи. ![]() ![]() ![]() 1 2 |