Характеристика видов независимости. (1)
Базы данных.
Концепция архитектуры БД. Характеристика уровней.(2)
БД – именованная совокупность данных, отражающая состояние объектов в рассматриваемой предметной области.
концепция БД:
1. Хранение информации в БД
2. Управление информацией через СУБД
1. Внешний уровень, на котором каждый пользователь имеет свое представление о базе
2. Концептуальный уровень, на котором БД представлена в общем виде, который объединяет данные всех приложений, работающих в БД
3. Физический уровень – данные, расположенные на внешних носителях, файлах или страничных структурах
Между этими уровнями имеются независимости: между 1 и 2 – логическая (означает, что изменение работы одного приложения не влияет на работу другого). Между 2 и 3 – физическая (она предполагает возможность переноса хранимой информации с одного носителя на другой, при сохранении работоспособности всех приложений, работающих с БД).
Характеристика видов независимости. (1)
Уровни архитектуры БД:
1. Внешний уровень
2. Концептуальный уровень
3. Физический уровень
Между этими уровнями имеются независимости: между 1 и 2 – логическая (означает, что изменение работы одного приложения не влияет на работу другого). Между 2 и 3 – физическая (она предполагает возможность переноса хранимой информации с одного носителя на другой, при сохранении работоспособности всех приложений, работающих с БД).
4. Охарактеризуйте классификацию моделей данных. Определение данных. Модель данных.(3)
Модель данных – некая абстракция, которая будучи приложена к данным позволяет трактовать их как информацию, то есть информация будет содержать не только данные, но и связи между ними. Рассмотрим классификацию моделей данных.
Кроме рассмотренной трехуровневой категории существует еще один уровень, предшествующий им, который называется инфологическимили семантическим. На этом уровне в удобной для разработчиков и пользователей форме отражается информационный уровень, связанный с описанием предметной области и объектов предметной области. На этом уровне описываются структуры данных и используются свои модели, но речи о выборе СУБД не идет. Затем следуют даталогические модели, которые объединяют первый и второй уровни архитектуры БД. Эти модели привязываются к конкретной СУБД.
БД не могут рассматриваться в отрыве от их назначения и от особенности использования для решения задач. БД чаще всего входит в информационную систему и обеспечивает информационную поддержку процессов в информационной системе.
Фактически БД – это сообщение о состоянии предметной области, Воспринимаемой некоторым субъектом, т.е. БД – это средства информационных коммуникаций, где вид информации связан с формой ее представления и особенностью использования, поэтому в отдельный класс выделяют фактографическую информацию. В ней реально существующие события или явления описывают как факты, задаваемые парой категорий <имя, значение>, т.е. факт задается величиной физической или логической. Поэтому, чтобы представить предметную область можно использовать точную теоретико-множественную модель.
5. Определение теоретико - графовых моделей. Характеристика иерархической модели. Основные информационные единицы.(2)
Теоретико – графовые модели.
Чтобы разобрать модель данных обратились к реальной жизни и выявили, что практически во всех связях объектов присутствуют иерархические связи. Первой моделью данных была иерархическая. Основные термины модели: БД, сегмент и поле. Эти термины являются основными информационными единицами в иерархической модели.
Поле данных – минимальная неделимая единица, доступная пользователю из БД (ФИО, адрес)
Сегмент – запись, которая имеет тип и экземпляр.
Тип сегмента – имя типов элементов данных (студенты)
Экземпляр сегмента – конкретное значение поля. Значит каждый тип сегмента имеет множество различных записей.
Иерархическая модель данных представляет собой древовидный граф. В нем направление ребра отражает иерархические связи между сегментами. Тип сегмента, находящийся на более высоком уровне иерархии называется логически исходным по отношению к типам сегментов, соединенных с ними ребрами, которые в свою очередь называются логически подчиненными. Иногда исходные сегменты называются предками, а подчиненные – потомками.
Схема иерархической базы – совокупность деревьев, а каждое дерево называется физической БД. Каждая физическая БД имеет иерархические ограничения:
1. В каждой физической базе есть только один корневой сегмент, то есть сегмент, который никому не подчиняется.
2. Каждый сегмент – предок может быть связан с произвольным числом сегментов – потомков.
3. Каждый сегмент – потомок может быть связан только с одним сегментом – предком.
Между экземплярами сегментов могут существовать иерархические связи. Каждый тип сегмента имеет множество экземпляров. В рамках иерархической модели существует языковое средство описания данных (язык DDL) и язык манипулирования данными (язык DML). В системе может быть несколько физических баз, но каждая из них описывается своим оператором. Язык манипулирования данными в иерархической модели поддерживает только навигационные операции. С помощью этих операций перемещается указатель, который определяет экземпляр сегмента. Все операторы в языке манипулирования делятся на 3 группы: операторы поиска данных, операторы поиска данных с модификацией, операторы модификации данных. При работе с иерархической моделью пользователь определяет свою внешнюю модель. Внешняя модель – поддерево физической базы, с которой работает пользователь. Недостатки иерархической модели:
1. Жесткость структуры
2. В реальной жизни жесткие иерархические связи достаточно редко встречаются.
6. Сетевая модель данных. Характеристика. Основные информационные единицы.(2)
Для устранения недостатков была разработана сетевая модель данных (1975 год). Базовые объекты модели: элемент данных, агрегат данных, набор данных, запись данных. Элемент данных тот же, что и в иерархической, то есть минимальная информационная единица, доступная пользователю через СУБД. Агрегат данных уровень обобщения в модели. Например, адрес может состоять из города, улицы, дома и квартиры или из страны, республики и так далее. Запись – совокупность агрегатов, моделирующих некий класс объектов реального мира. Запись соответствует сегменту. Набор данных – двухуровневый граф, связывающий отношением один ко многим 2 типа записи. Набор отражает иерархическую связь между 2 типами записи, причем для двух типов записи может быть определено множество наборов. Сетевая БД представляет собой совокупность взаимосвязанных наборов, образующих на концептуальном уровне граф. Точно также в сетевой модели имеется язык описания и язык манипулирования. Язык описания имеет разделы: описание записей (области размещения) и описание набора. Язык манипулирования включает в себя навигационные операции и операции модификации. Внешняя модель сетевой организации поддерживается описанием части общего графа.
7. Определение теоретико-множественной модели.(1)
эти модели отражают совокупность объектов реального мира в виде графа взаимосвязанных информационных объектов. В зависимости от типа графа выделяют иерархическую или сетевую модели. Исторически эти модели появились раньше, и в настоящий момент они используются реже, чем более современная реляционная модель данных. Однако до сих пор существуют системы, работающие на основе этих моделей, а одна из концепций развития объектно-ориентированных баз данных предполагает объединение принципов сетевой модели с концепцией реляционной.
8. Реляционная модель данных, основные определения.(2)
Работы над этой моделью начались из-за потребностей пользователей работать не с элементами данных, как в графовых, а с макрообъектами. Но любая идея осуществляется лишь тогда, когда она имеет теоретические основания. Теоретической основой РМД является теория отношений (Ч. Спирс, Э. Шредер). В этой теории было показано, что множество отношений, замкнутых относительно специальных операций, образуют абстрактную алгебру. Это свойство использовал Эдвард Кодд и в 1970 году разработал РМД + реляционную алгебру, то есть Кодд предложил основной структурой данных в модели взять отношения.
N-арным отношением R называется подмножество декартова произведения множеств D1, D2,…,Dn не обязательно различных.
Полное декартово произведение – набор сочетаний n-элементов.
Например: есть 3 элемента - фамилия, дисциплина и оценка. Используя Декартово произведение мы получим: Фамилия-дисциплина-оценка. Так как перечень записи не удобен Кодд предложил графическую интерпретацию отношений – таблицу.
Студенты (имя отношения)
№ | Фамилия | Адрес |
| ||
Иванов | Ленина |
| |||
Петров | Пр. победы | ||||
3 | Сидоров | Бажова |
домен
Домен – все значения одного атрибута. Заголовки (имена) столбцов являются атрибутами. Значения атрибута определяют свойства объекта. Кортежем или записью называют строки отношений, которые имеют значения из каждого атрибута. Арностью или степенью отношений является количество столбцов в таблице. Схемой отношения называется конечное множество имен атрибутов. Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и одинаковое упорядочивание имен атрибутов. Множество кортежей называется телом отношений. Оно отражает состояние объекта и во времени постоянно меняется. Тело отношения имеет координальное число, равное количеству кортежей. Перви́чный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).
9. Основные правила построения РМД, отличие таблиц в РМД от остальных таблиц.(1)
В отличие от иерархической и сетевой моделей данных в реляционной отсутствует понятие группового отношения. Для отражения ассоциаций между кортежами разных отношений используется дублирование их ключей.
В своей статье Кодд сформулировал 12 правил для реляционной базы:
1. Правило информации: вся информация в базе представляется на логическом уровне и только одним способом - в виде значений в таблицах.
2. Правило гарантируемого доступа: логический доступ к каждому элементу данных в РБД обеспечивается именем таблицы, первичным ключом и именем столбца.
3. Правило поддержки недействительных значений: в РБД существует нуль-значение, то есть значение атрибута, которое пока не определено. Кроме этого поддерживаются строки пробельных символов.
4. Правило динамического каталога, основанного на РБД: описание данных и описание базы на логическом уровне должно быть представлено в том же виде, который понятен пользователю, то есть описание структуры и описание данных должно быть на одном языке.
5. Правило исчерпывающие подъязыка данных: реляционная система может поддерживать различные ЯП и режимы взаимодействия с пользователем, но должен быть хотя бы один язык с четким синтаксисом.
6. Правило обновления представлений.
7. Правило добавления, обновления, удаления: возможность работать с отношением как с одним операндом не только при чтении, но и при добавлении, обновлении, удалении.
8. Правило независимости физических данных.
9. Правило независимости логических данных.
10. Правило независимости условий целостности: условие целостности определяется на подъязыке и хранится в каталоге, а не в прикладной программе.
11. Правило независимости распространения, то есть реляционная СУБД не должна зависеть от потребностей конкретного клиента.
12. Правило единственности: если в системе есть низкоуровневый ЯП, обрабатывающий за 1 раз 1 запись, то его нельзя использовать для обработки нескольких записей за 1 раз.
10. Реляционная алгебра, основные определения, типы операций.(1)
Алгеброй называется совокупность объектов, с заданной на ней совокупностью операций, которые замкнуты относительно множества объектов. Основными множествами в реляционной алгебре называется множество отношений. Э. Кодд предложил 8 операций и разделил их на 2 группы: теоретико-множественные и специальные.
Теоретико-множественные операции реляционной алгебры.
1. Объединением двух отношений называется отношение, которое содержит множество кортежей, принадлежащих либо первому, либо второму отношению, либо обоим одновременно.
Пусть заданы 2 отношения R1 и R2
2. Пересечение называется отношение, которое содержит множество кортежей, принадлежащих первому и второму отношению одновременно.
3. Разностью двух отношений называется отношение, содержащие множество кортежей, принадлежащих первому и не принадлежащих второму отношению.
Объединение и пересечение – коммутативные операции, то есть результат операций не зависит от порядка аргументов. Операция разность принципиально несимметрична, то есть результат различен для разного порядка аргументов.
4. Расширенное декартово произведение. Прежде чем рассматривать операцию дадим понятие конкатенации (сцепления). Сцеплением кортежей C с элементами c1, c2,…,cn и кортежа Q с элементами q1, q2,…,qm называется кортеж, полученный добавлением значения второго в конец первого.
Расширенным декартовым произведением отношения R1 со степенью n и схемой Sr1=(A1,A2,…,An) и отношения R2 со степенью m и схемой Sr2=(B1,B2,…,Bm) называется отношение R3 со степенью n+m и схеиой Sr3=(A1,A2,…,An,B1,B2,…,Bm), содержащие полученные кортежи, полученные сцеплением каждого кортежа R1 с каждым кортежем R2.
11. Характеристика операции объединение.(1)
Объединением двух отношений называется отношение, которое содержит множество кортежей, принадлежащих либо первому, либо второму отношению, либо обоим одновременно.
Пусть заданы 2 отношения R1 и R2
12. Характеристика операции пересечения.(1)
Пересечение называется отношение, которое содержит множество кортежей, принадлежащих первому и второму отношению одновременно.
13. Характеристика операции разность.(1)
Разностью двух отношений называется отношение, содержащие множество кортежей, принадлежащих первому и не принадлежащих второму отношению.
Объединение и пересечение – коммутативные операции, то есть результат операций не зависит от порядка аргументов. Операция разность принципиально несимметрична, то есть результат различен для разного порядка аргументов.
14. Расширенное Декартово произведение.(2)
Расширенное декартово произведение. Прежде чем рассматривать операцию дадим понятие конкатенации (сцепления). Сцеплением кортежей C с элементами c1, c2,…,cn и кортежа Q с элементами q1, q2,…,qm называется кортеж, полученный добавлением значения второго в конец первого.
Расширенным декартовым произведением отношения R1 со степенью n и схемой Sr1=(A1,A2,…,An) и отношения R2 со степенью m и схемой Sr2=(B1,B2,…,Bm) называется отношение R3 со степенью n+m и схеиой Sr3=(A1,A2,…,An,B1,B2,…,Bm), содержащие полученные кортежи, полученные сцеплением каждого кортежа R1 с каждым кортежем R2.
15. Жизненный цикл БД, этапы.(2)
Жизненный цикл БД
16. Этапы проектирования БД.(1)
Процесс проектирования состоит из этапов:
17. Характеристика системного анализа ПО, подходы.(2)
Прежде чем разработать БД разработчику необходимо познакомиться с предметной областью:
1) какова структура предприятия
2) что производит и каковы внешние связи
3) какова политика качества на предприятии
4) финансовая состоятельность
5) какие задачи и кем будут решаться с помощью баз.
Для этого необходимо словесно описать объекты, связи между ними, кратко сформулировать задачи и алгоритмы их решений. Закончиться системный анализ должен формированием отчёта, куда будут включены описания объектов, задачи, формы входа и выхода документов, т.е. перед началом разработки уже точно знать, что должно выполняться в системе, какие пользователи будут в ней работать, какие задачи будет решать каждый. Системный анализ должен быть проведён тщательно, т.к. он – фундамент разработки.
18. Инфологическая модель, проблемы семантики, назначение.(2)
На второй стадии проектирования выполняется моделирование данных. Моделирование данных– это процесс создания логической структуры данных. Существует два подхода к моделированию данных:
Модель «Сущность-связь»
Семантическая объектная модель
Эти модели представляют собой языки для описания структуры данных и их связей в представлениях пользователей. Моделирование данных, подобно блок-схемам, отражают логику программы.
Семантическое моделирование стало предметом интенсивных исследований с конца 1970-х годов. Основным побудительным мотивом подобных исследований (т.е. проблемой, которую пытались разрешить исследователи) был следующий факт. Дело в том, что системы баз данных обычно обладают весьма ограниченными сведениями о смысле хранящихся в них данных. Чаще всего они позволяют лишь манипулировать данными определенных простых типов и определяют некоторые простейшие ограничения целостности, наложенные на эти данные. Любая более сложная интерпретация возлагается на пользователя. Однако было бы замечательно, если бы системы могли обладать немного более широким объемом сведений и несколько интеллектуальнее отвечать на запросы пользователя, а также поддерживать более сложные (т.е. более высокоуровневые) интерфейсы пользователя.
Цель создать концептуальную модель, понятную заказчику. Выявить все минусы и плюсы данного проекта.
19. Понятие ER- модели («сущность – связь), нотации, принципы.(3)
Совокупность различных графических объектов называется нотацией.
Американским информатиком Питером Ченом была предложена на этом этапе ER-модель (модель «сущность-связь»). Эта модель стала самой популярной, поддерживается полный цикл разработки БД или его стадии.
Моделирование предметной области включает в себя использование графических диаграмм, которые состоят из небольшого числа компонентов.
Основу ER-модели составляют предположения:
1) часть реального мира, сведения о которой помещается в БД, может быть представлена как совокупность сущности
2) каждая сущность обладает свойствами, которые отличают её от другой и позволяют её идентифицировать
3) сущность можно классифицировать по типам, в которых каждый экземпляр может обладать общими для сущности свойствами
4) для систематизации представления используются классы, а между типом и подтипом сущности существуют иерархические зависимости
5) взаимосвязи объектов представляются как связи, чтобы зафиксировать взаимосвязь сущности.
Необходимо подчеркнуть информационную природу сущности, т.к. любой объект обладает свойствами, часть из этих свойств характерные, а значит, значимы для прикладной задачи. Соответственно, помимо сущности рассматривается её экземпляр. Основная цель ER-модели: определить объекты и взаимосвязи между ними на базе графических диаграмм или нотаций.
20. Основные понятия модели «сущность – связь», сущность, свойства.(2)
Рассмотрим основные понятия ER-модели:
1. Сущность – предмет, который может быть чётко идентифицирован и с помощью которого моделируется класс однотипных объектов. Т.к. каждый объект характеризуется набором значений и свойств, сущность тоже должна определяться набором атрибутов. Каждый экземпляр сущности должен отличаться от других. Сущность имеет имя уникальное в модели. Имя сущности – имя типа сущности, делится на слабые и сильные. Сущность слабая, если её существование зависит от другой сущности.
2. Свойства сущности:
1) могут быть множественными или единичными
2) св-во м.б. простым, если его нельзя разделить, либо составным
3) иногда необходимо различать базовые и производные св-ва
4) значения свойств м.б. постоянными (статичными), либо динамичными (изменяющимися)
5) св-во м.б. неопределенным, пока не задано текущее значение.
3. Связи – ассоциации, обеспечивающие несколько сущностей. Ассоциация м.б. между разными сущностями, между сущностью и ею же самой (рекурсивная связь). Связь тоже является типовым понятием, поэтому подчиняется правилу типов. Сущности, которые объединяются связью, называются участниками. Степень связи определяется количеством участников (полная (обязательная) и неполная (необязательная)).
Существуют 4 типа связи:
§ 1:1
§ 1:М
§ М:1
§ М:М
4. Супертипы и подтипы – сущность м.б. расщеплена на несколько подтипов, в которых содержатся общие атрибуты. Сущность, на основе которой определяются подтипы, называется супертип. Подтип наследует свойства и связи супертипа.
21. Связи в модели «сущность – связь», супертипы, подтипы.(2)
3. Связи – ассоциации, обеспечивающие несколько сущностей. Ассоциация м.б. между разными сущностями, между сущностью и ею же самой (рекурсивная связь). Связь тоже является типовым понятием, поэтому подчиняется правилу типов. Сущности, которые объединяются связью, называются участниками. Степень связи определяется количеством участников (полная (обязательная) и неполная (необязательная)).
Существуют 4 типа связи:
§ 1:1
§ 1:М
§ М:1
§ М:М
4. Супертипы и подтипы – сущность м.б. расщеплена на несколько подтипов, в которых содержатся общие атрибуты. Сущность, на основе которой определяются подтипы, называется супертип. Подтип наследует свойства и связи супертипа.
22. Правила перехода от ER-модели к реляционной модели.(2)
Рассмотрим общий подход к построению РБД. Получение реляционной схемы из ER-диаграммы:
1) каждая простая сущность превращается в таблицу (отношение); имя сущности становится именем таблицы
2) каждый атрибут (св-во сущности) становится столбцом с тем же именем; столбцы с необязательными атрибутами могут иметь неопределенные значения; если столбцы соответствуют обязательным атрибутам – неопределенные значения быть не должны; если атрибут является множественным – для него составляем отдельное отношение
3) уникальный идентификатор сущности превращается в первичный ключ
4) связи М:1 и 1:1 становятся внешними ключами
5) для первичного ключа создается индекс, который будет использоваться в запросах
6) если в ER-модели есть подтипы и типы, возможны 2 варианта преобразования:
· таблица создается для супертипа, а для подтипов представление – таблица – результат запроса
· для каждого подтипа создается отдельная таблица, а в супертипе находятся общие столбцы подтипов
7) если остающиеся внешние ключи принадлежат одному домену (имеют общий формат), то создается 2 столбца:
1 – идентификатор связи (для различения связи)
2 – идентификатор сущности (хранит значение уникального идентификатора сущности на конце связи).
Если внешние ключи не относятся к одному домену, то для каждой связи создаются столбцы внешних ключей.
23. Выбор СУБД. Критерии выбора, факторы, влияющие на выбор.(1)
После создания ER-модели необходимо выбрать СУБД. Мы можем выбрать иерархическую модель, сетевую или реляционную.
Классификация СУБД
По языкам общения СУБД делятся на открытые, замкнутые и смешанные.
По выполняемым функциям СУБД делятся на информационные и операционные.
По сфере возможного применения различают универсальные и специализированные (проблемно ориентированные СУБД).
По мощности СУБД делятся на настольные) и корпоративные
По ориентации на преобладающую категорию пользователей можно выделить СУБД для разработчиков и для конечных пользователей.
Рынок СУБД бурно развивается, достаточно широк и разнообразен. Тем не менее, можно выделить некоторые основные тенденции, присущие этому классу программных продуктов.
1. Поддержка разных стилей проектирования (традиционный, объектно-ориентированный, «визуальное» проектирование).
Использование визуальных объектно-ориентированных средств разработки является преобладающей тенденцией.
2. Использование мультимедийных систем. Обработка графических образов. Управление пространственной информацией.
3. Повышение уровня языковых средств. Дружелюбность.
4. Включение в СУБД разнообразных языковых средств, ориентированных на разные категории пользователей.
5. Поддержка решений для реализации хранилищ данных в целях обеспечения процессов принятия решений.
6. Наличие разнообразных сервисных средств (развитая «помощь»: контекстная помощь (Help), электронные учебники, примеры, шаблоны распространенных приложений, «Волшебники» и т.п.).
7. Расширение функциональных возможностей (многофункциональность). Причем расширяется набор, и улучшаются характеристики не только функций, присущих собственно СУБД, но и существенно развиваются возможности получения выходных документов различных видов, функции редакторов (в том числе проверка орфографии и т.п.), передача документов по ЭП, документирование проекта и некоторые другие функции, которые не являются функциями по управлению данными.
8. Многоплатформенность - наличие вариантов «одноименных» СУБД, реализованных для разных операционных систем и разных типов компьютеров. Несмотря на острую конкуренцию операционных систем, иногда бывают периоды бурного развития и широкого распространения какой-то одной из них. Так, например, 1990-е гг. характеризовались массовым выпуском СУБД под Windows для настольных систем. Для корпоративных систем пальму первенства долгое время удерживала UNIX.
9. Рост производительности. Он присущ системам всех классов, но, разумеется, сама производительность для каждого класса систем различается. Наибольшей производительностью обладают СУБД, относящиеся к классу корпоративных систем.
10. Использование более развитых и разнообразных средств обеспечения целостности и безопасности данных.
11. «Интернационализация». Выражается в использовании СУБД ведущих производителей в разных странах мира; со стороны производителя это проявляется в локализациях версий. Поддержка национальных языков (Спецификация NLS - NationalLanguage Support).
12. Работа в многопользовательской среде. Распределенность. Работа в гетерогенной среде. Масштабируемость.
13. Открытость системы. Обеспечивается поддержкой определенных стандартов.
14. Преобладающая модель данных - реляционная. Наблюдается повышение «уровня реляционности» данных. Например, многие системы стали поддерживать концепции ключа, вероятного ключа, ссылочной целостности. Само понятие БД, которое не поддерживалось в некоторых популярных СУБД реляционной ориентации, например в xBase-системах, также введено в новые версии этих систем (например, в VisualFoxPro; причем возможно наличие, как изолированных файлов БД, так и объединенных понятием БД. При этом некоторые виды обработки возможны только для файлов, включенных в БД, например, задание ограничений целостности по связи.).
15. Преобладающий язык запросов - SQL. Это тоже говорит о повышении уровня реляционности.
16. Для структурированных БД - увеличение разнообразия типов поддерживаемых полей.
17. Развитие объектно-реляционных и объектно-ориентированных СУБД.
18. Развитие средств обеспечения безопасности данных.
19. Развитие средств упрощения эксплуатации баз данных. Управление базой данных в значительной степени автоматизировано.
Факторы, влияющие на выбор СУБД:
1) Факторы, характеризующие СУБД и программирование ее окружения
2) Другие факторы, связанные с Инфраструктурой СУБД
3) Особенность Использования СУБД
4) Финансовая устойчивость заказчика.
24. Даталогическое проектирование, суть, основные понятия, результат.(2)
Нежелательные зависимости искажают реальную картину предметной области, поэтому от них необходимо избавляться. Процесс разработки корректной схемы базы (без нежелательной зависимости) называется даталогическим проектированием. После выполнения этого этапа мы должны иметь:
1) описание концептуальной схемы (инфологич мд) в терминах выбранной СУБД
2) описание внешней мд в терминах СУБД
3) описание правил поддержки целостности базы
4) разработка процедур для поддержки смысловой целостности базы
5) построение корректной схемы базы.
Сущность – любой различимый объект (объект, который
можно отличить от другого), информацию о котором необходимо
хранить в базе данных. Сущность - это реальный или
представляемый объект, информация о котором должна сохраняться
и быть доступна.
Атрибут – поименованная характеристика сущности.
Атрибутом сущности является любая деталь, которая служит для
уточнения, идентификации, классификации, числовой
характеристики или выражения состояния сущности.
Ключ – минимальный набор атрибутов, по значениям
которых можно однозначно найти требуемый экземпляр сущности.
Минимальность означает, что исключение из набора любого
атрибута не позволяет идентифицировать сущность по оставшимся
атрибутам.
Связь – ассоциирование двух или более сущностей, то есть
связь - это графически изображаемая ассоциация, устанавливаемая
между двумя и более сущностями
25. Проблемы моделирования. Понятие нормализации.(1)
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.[1] Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт, общее назначение процесса нормализации заключается в следующем:
§ исключение некоторых типов избыточности;
§ устранение некоторых аномалий обновления;
§ разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения;
§ упрощение процедуры применения необходимых ограничений целостности.
26. Виды форм, свойства.(2)
Свойства:
1) Каждая следующая форма ограничивает тип функциональная зависимость
2) Устраняет соответствующие аномалии
3) Каждая последующая форма сохраняет свойства предыдущей.
Первая НФ: 1НФ, 2НФ, 3НФ
Расширенная форма Бойа-Кодда:5КНФ,4НФ,5НФ
27. Зависимости между атрибутами (функциональная, многозначная).(1)
Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В
Если между А и В существует функциональная зависимость и между В и А тоже, то значит имеется между А иВ фуннкциональная взаимозависимость. (ФИО-паспортные данные)
Атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, несвязанных с другими атрибутами.
28. Определение 1НФ.(1)
Отношение находящиеся в 1НФ, если все его атрибуты атомарные, т.е. простые
Перевод отношения в следующую НФ осуществляется методом декомпозиции без потерь (такая декомпозиция должна обеспечивать один результат выполнения запроса, направленный как к исходному, так и к отношению после декомпозиции). Основная операция метода – операция проекции. Исходное отношение Преподаватель имеет частичную зависимость атрибутов (ПК → ФИО, группа, предмет; ставка, доплата, оклад, должность, кафедра → зависит от ФИО).
Эта частичная зависимость приводит к явному и неявному избыточному дублированию данных (повторение сведений об окладе и должности и т.д.).
29. Определение 2НФ.(1)
Отношение находящиеся в 2НФ ли оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа
Чтобы перевести отношение во 2-ую НФ необходимо:
1) построить проекцию без атрибутов, которые частично функционально зависят от первичного ключа
2) построить проекцию на часть первичного ключа и атрибуты, от него зависимые.
| |||
|
ФИО | Группа | Предмет | Вид занятий |
Иванов Иванов Петров Петров Петров |
ФИО | Оклад | Стаж | Должность | Доплата | Кафедра |
Иванов Петров Сидоров |
30. Определение 3НФ.(1)
Отношение находящиеся в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетрензитивно зависит от первичного ключа
R1 R2 R3
Должность | Оклад |
Ставка | Доплата |
ФИО | Должность | Ставка | Кафедра |
Т.о. наше исходное отношение мы привели к 3-ей НФ путём декомпозиции. На практике бывает достаточно 3-ей НФ. Если мы используем ER-диаграмму и в сущностях присутствуют нежелательные зависимости между атрибутами, мы можем применить метод НФ.
31. Характеристика и назначение языка SQL.(1)
Сегодня язык SQL единственный язык БД. SQL поддерживают более 100 СУБД, работающие как на ПК, так и на больших ЭВМ. SQL – стратегическое направление разработок Microsoft в области БД.
SQL – инструмент для обработки и чтения данных из баз. SQL – Structured Query Language. SQL – ЯП для взаимодействия пользователя с базами, но только определённого типа – реляционных. Но сегодня SQL гораздо больше, чем инструмент создания запросов.
Функции SQL:
1) организация данных (изменение структуры представления данных, установление отношения между элементами данных)
2) чтение данных
3) обработка данных
4) управление доступом
5) совместное использование данных (координация использования данных параллельно работающими пользователями)
6) целостность данных (SQL обеспечивает целостность базы, защищая её от разрушения).
Роль SQL
SQL – не СУБД, не отдельный программный продукт, его нельзя купить в магазине. SQL – необъемлемая часть СУБД, именно через SQL осуществляется связь с БД. SQL – универсальное программное средство управления данными
32. Компоненты языка SQL.(1)
Элементы SQL:
1. DML – язык манипулирования данными
2. DDL – язык определения данных
3. DCL – язык управления данными.
33. Основные понятия SQL, инструкции и имена.(1)
Основные понятия и компоненты
Инструкции и имена
Инструкция SQL начинается с команды – ключевого слова, описывающего действие, выполняемое инструкцией. Типичными являются команды CREATE, INSERT, SELECT, DELETE. Следом за командой указывается одно или несколько предложений. Предложение описывает данные, с которыми должна работать инструкция, или уточняет действие, выполняемое инструкцией. Предложения в инструкции делятся на обязательные и необязательные. Каждое предложение начинается с ключевого слова, например, WHERE, FROM, INTO. У каждого объекта в базе данных есть уникальное имя. Имена используются в инструкциях SQL и указывают, над каким объектом базы данных инструкция должна выполнить действие. В рамках одной таблицы не может быть определено двух столбцов с одинаковыми именами, но в разных таблицах это возможно.
Типы данных
Целые числа (INT, SMALLINT), десятичные числа (NUMERIC, DECIMAL), числа с плавающей запятой (REAL, FLOAT), строки символов постоянной длины (CHAR), строки символов переменной длины (VARCHAR), дата и время (DATETIME,SMALLDATETIME), булевы величины (BIT).
Встроенные функции
Основной особенностью этих функций является возможность их использования при построении выражений.
Встроенные функции, доступные при работе с SQL, можно условно разделить на следующие группы: математические функции; строковые функции; функции для работы с величинами типа дата-время; функции конфигурирования; системные функции; функции системы безопасности; функции управления метаданными; статистические функции.
ABS(число), ROUND(число, точность), POWER(число, степень), SQRT(число), SIN(угол), COS(угол) <в радианах>, EXP(число), LOG(число), LOWER(строка), UPPER(строка),STR(число), GETDATE().
Значения NULL
SQL поддерживает обработку не определенных (не заданных) данных с помощью использования отсутствующего значения (NULL). Это значение показывает, что в конкретной строке конкретный элемент данных отсутствует. При этом NULL не является значением данных и в связи с этим не имеет определенного типа.
34. Основные понятия SQL, типы данных(1)
Основные понятия и компоненты
Инструкции и имена
Инструкция SQL начинается с команды – ключевого слова, описывающего действие, выполняемое инструкцией. Типичными являются команды CREATE, INSERT, SELECT, DELETE. Следом за командой указывается одно или несколько предложений. Предложение описывает данные, с которыми должна работать инструкция, или уточняет действие, выполняемое инструкцией. Предложения в инструкции делятся на обязательные и необязательные. Каждое предложение начинается с ключевого слова, например, WHERE, FROM, INTO. У каждого объекта в базе данных есть уникальное имя. Имена используются в инструкциях SQL и указывают, над каким объектом базы данных инструкция должна выполнить действие. В рамках одной таблицы не может быть определено двух столбцов с одинаковыми именами, но в разных таблицах это возможно.
Типы данных
Целые числа (INT, SMALLINT), десятичные числа (NUMERIC, DECIMAL), числа с плавающей запятой (REAL, FLOAT), строки символов постоянной длины (CHAR), строки символов переменной длины (VARCHAR), дата и время (DATETIME,SMALLDATETIME), булевы величины (BIT).
Встроенные функции
Основной особенностью этих функций является возможность их использования при построении выражений.
Встроенные функции, доступные при работе с SQL, можно условно разделить на следующие группы: математические функции; строковые функции; функции для работы с величинами типа дата-время; функции конфигурирования; системные функции; функции системы безопасности; функции управления метаданными; статистические функции.
ABS(число), ROUND(число, точность), POWER(число, степень), SQRT(число), SIN(угол), COS(угол) <в радианах>, EXP(число), LOG(число), LOWER(строка), UPPER(строка),STR(число), GETDATE().
Значения NULL
SQL поддерживает обработку не определенных (не заданных) данных с помощью использования отсутствующего значения (NULL). Это значение показывает, что в конкретной строке конкретный элемент данных отсутствует. При этом NULL не является значением данных и в связи с этим не имеет определенного типа.
35. Встроенные функции языка SQL, значение NULL.(1)
Встроенные функции
Основной особенностью этих функций является возможность их использования при построении выражений.
Встроенные функции, доступные при работе с SQL, можно условно разделить на следующие группы: математические функции; строковые функции; функции для работы с величинами типа дата-время; функции конфигурирования; системные функции; функции системы безопасности; функции управления метаданными; статистические функции.
ABS(число), ROUND(число, точность), POWER(число, степень), SQRT(число), SIN(угол), COS(угол) <в радианах>, EXP(число), LOG(число), LOWER(строка), UPPER(строка),STR(число), GETDATE().
Значения NULL
SQL поддерживает обработку не определенных (не заданных) данных с помощью использования отсутствующего значения (NULL). Это значение показывает, что в конкретной строке конкретный элемент данных отсутствует. При этом NULL не является значением данных и в связи с этим не имеет определенного типа.
36. Управление таблицами языка SQL, команды.(1)
Начнём с простого запроса на создание новой таблицы:
CREATE TABLE users (id INT AUTO_INCREMENT, login TEXT, pass VARCHAR,PRIMARY KEY (id))
При создании таблицы вначале идёт команда "CREATE TABLE", затем имя таблицы. В скобках идут различные данные, описавающие названия и типы полей. Мы создали поле "id" типа int, а также сделали его AUTO_INCREMENT. Создали поля "login" и "pass" типаvarchar. Также поле ID сделали первичным ключом. Как видите, синтаксис не сложный, однако, у него существует много вариаций, но все они интуитивно создаются. В крайнем случае, не забывайте, что всегда SQL-запрос можно посмотреть в PHPMyAdmin.
Теперь давайте разберём SQL-запрос для переименования таблицы базы данных:
ALTER TABLE users RENAME newname
После команды "ALTER TABLE" идёт имя таблицы, которую мы хотим переименовать, затем "RENAME" и то имя, на которое мы хотим изменить название таблицы.
Теперь SQL-запрос на удаление базы данных:
DROP TABLE newname
При удалении таблицы надо отправить название команды "DROP TABLE", а затем имя таблицы, которую требуется удалить.
Теперь переходим к работе с полями (столбцами) таблиц. И начём с добавления новых полей в таблицу:
ALTER TABLE users ADD firstname TEXT
В данном коде мы вставляем в таблицу "users" новое поле с именем "firstname" и типом text.
Код для изменения параметров поля таблицы:
ALTER TABLE users CHANGE pass password VARCHAR, CHANGE firstname firstname VARCHAR
В данном SQL-запросе мы в таблице "users" изменили два поля: имя поля "pass" мы сменили на "password", а у поля "firstname" мы имя оставили прежним, а тип сменили на varchar. Если Вам требуется изменить только одно поле, то тогда достаточно одной команды CHANGE, иначе через запятую перечисляйте все поля, которые требуется изменить.
И, как Вы, наверное, догадались, SQL-запрос на удаление поля из таблицы:
ALTER TABLE users DROP firstname
Синтаксис очень прозрачный, но всё-таки поясню: после команды "ALTER TABLE" идёт имя таблицы, поле в которой мы хотим удалить. Затем идёт команда "DROP", сразу за которой имя удаляемого поля.
37. Управление данными, синтаксис SELECT. (2)