Этапы проектирования базы данных
Процесс проектирования включает в себя следующие этапы:
1. Инфологическое проектирование.
2. Определение требований к операционной обстановке, в которой будет функционировать информационная система.
3. Выбор системы управления базой данных (СУБД) и других инструментальных программных средств.
4. Логическое проектирование БД.
5. Физическое проектирование БД.
Инфологический подход не предоставляет формальных способов моделирования реальности, но он закладывает основы методологии проектирования баз данных.
24
Модель сущность-связь (ER-модель) (англ. entity-relationship model, ERM) — модель данных, позволяющая описывать концептуальные схемы предметной области.
ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
Во время проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.).
ER-модель представляет собой формальную конструкцию, которая сама по себе не предписывает никаких графических средств её визуализации. В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма сущность-связь (ER-диаграмма) (англ. entity-relationship diagram, ERD).
Понятия ER-модель и ER-диаграмма часто ошибочно не различают, хотя для визуализации ER-моделей предложены и другие графические нотации (см. ниже).
25.
Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями.
Операции реляционной алгебры
Для управления отношениями в реляционной модели используются языки БД. Языки БД подразделяются на процедурные и не процедурные.
Процедурные языки точно указывают системе как манипулировать данными.
Непроцедурные языки позволяют указывать какие нужны данные, а не правила манипулирования ими.
Создатель Э.Кодд предложил в качестве основы реляционных языков – реляционную алгебру (процедурный язык) и реляционное исчисление (непроцедурный язык).
Реляционная алгебра:
УНАРНЫЕ :
-выборка;
-проекция;
БИНАРНЫЕ :
- декартово произведение;
- объединение;
- разность .
И 3 дополнительных:
- соединение;
- пересечение;
- деление.
26.
Состав языка SQL
Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде.
Поэтому, в язык SQL в качестве составных частей входят:
- язык манипулирования данными (Data Manipulation Language, DML)
- язык определения данных (Data Definition Language, DDL)
- язык управления данными (Data Control Language, DCL).
Подчеркнем, что это не отдельные языки, а различные команды одного языка. Такое деление проведено только лишь с точки зрения различного функционального назначения этих команд.
Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд:
SELECT | (выбрать) |
INSERT | (вставить) |
UPDATE | (обновить) |
DELETE | (удалить) |
Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей - таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур. Основными его командами являются:
CREATE DATABASE | (создать базу данных) |
CREATE TABLE | (создать таблицу) |
CREATE VIEW | (создать виртуальную таблицу) |
CREATE INDEX | (создать индекс) |
CREATE TRIGGER | (создать триггер) |
CREATE PROCEDURE | (создать сохраненную процедуру) |
ALTER DATABASE | (модифицировать базу данных) |
ALTER TABLE | (модифицировать таблицу) |
ALTER VIEW | (модифицировать виртуальную таблицу) |
ALTER INDEX | (модифицировать индекс) |
ALTER TRIGGER | (модифицировать триггер) |
ALTER PROCEDURE | (модифицировать сохраненную процедуру) |
DROP DATABASE | (удалить базу данных) |
DROP TABLE | (удалить таблицу) |
DROP VIEW | (удалить виртуальную таблицу) |
DROP INDEX | (удалить индекс) |
DROP TRIGGER | (удалить триггер) |
DROP PROCEDURE | (удалить сохраненную процедуру) |
27
mysql> Select *from users;
mysql>Select* id_user From users;
Mysql> select* Select*From topics;
Mysql> select*From topics Order By topic_name DeSC;
28
Оператор IN содержит набор значений для атрибута, при которых данный предикат будет истинным.
Например, чтобы определить студентов, живущих по адресам Ад1 и Ад2, необходимо послать следующий запрос:
SELECT * FROM СТУДЕНТ WHERE Адрес IN ( ‘Ад1’, ‘Ад2’ );
Оператору IN может предшествовать оператор NOT, изменяющий значение предиката на противоположное.
Оператор BETWEEN похож на оператор IN. В отличие от задания значений из набора, как это делает оператор IN, в операторе BETWEEN задается диапазон значений, в котором истинен предикат. Необходимо ввести ключевое слово BETWEEN с начальным значением, ключевое слово AND и конечное значение. В отличие от оператора IN оператор BETWEEN чувствителен к порядку, и первое значение в предложении должно быть первым по алфавитному или числовому порядку.
Оператор LIKE используется для нахождения подстрок. Он применим только к полям типа CHAR или VARCHAR. В качестве условия оператор LIKE использует групповые символы (символы типа wildсards).
Имеются два групповых символа, используемых с оператором LIKE:
- символ подчеркивания ( _ );
- знак процента (%).
Символ подчеркивания ( _ ) замещает любой одиночный символ. Например, ‘г_д’ будет соответствовать словам ‘год’, ‘гад’ или ‘гид’, но не будет соответствовать ‘град’.
Знак процента (%) замещает последовательность любого числа символов, в том числе и пустую. Например, ‘%р%д’ будет соответствовать словам ‘брод’,‘ряд’, или ‘ярд’, но не ‘pоды’.
Предложение ESCAPE задает любой одиночный символ как символ “исключения” (ESC). Символ ESC используется сразу перед процентом или подчеркиванием в предикате и означает, что процент или подчеркивание должно интерпретироваться как символ, а не как групповой символ.
Например, для поиска строки, содержащей символ ‘_’, следует ввести запрос:
SELECT *FROM СТУДЕНТ
WHERE ФИО_НТ LIKE ‘%\_% ’ESCAPE ’\’;
В этом запросе предложение ESCAPE определяет ‘\‘ как символ ESC. Символ ESC применяется только к одиночному символу сразу после него. Сам символ ESC, который может появиться в LIKE-строке, должен сопровождаться вторым знаком ESCAPE.
Часто в таблице могут появляться записи, в которых нет значений в одном или нескольких полях потому, что данных в этом поле и не должно быть, или потому, что это поле просто не заполнялось. Язык SQL позволяет вводить маркер NULL (ПУСТОЙ) в поле записи. Маркер NULL может помещаться в любой тип поля.
Так как NULL указывает на отсутствие значения, результат сравнения с использованием NULL неизвестен. В языке SQL неизвестное значение предиката приравнивается к неистинному в момент принятия решения о выводе строки ответа. Но в случае применения операции NOT к неизвестному значению предиката результат считается неизвестным и строка по-прежнему не выводится.
29
Преобразование вывода и встроенные функции 33 • Бинарные операторы «+», «—», «*» и «/» предоставляют воз- можность выполнения арифметических операций сложения, вычитания, умножения и деления. Например, результат запроса SELECT SURNAME, NAME, STIPEND, -(STIPEND*KURS)/2 FROM STUDENT WHERE KURS = 4 AND STIPEND > 0; выглядит следующим образом: SURNAME Сидоров Петров NAME Вадим Антон STIPEND 150 200 KURS 4 4 -300 -400
Функции преобразования символов в строке • LOWER — перевод в строчные символы (нижний регистр) LOWER () • UPPER — перевод в прописные символы (верхний регистр) UPPER () • INITCAP — перевод первой буквы каждого слова строки в прописную (заглавную) INITCAP () Например: SELECT LOWER (SURNAME), UPPER (NAME) FROM STUDENT WHERE KURS = 4 AND STIPEND > 0; Результат запроса будет выглядеть следующим образом: - SURNAME сидоров петров NAME ВАДИМ АНТОН 2.3.5.
LTRIM — удаление левых граничных символов LTRIM ([,]) • из удаляются слева символы, указанные в ; • если < подстрока > не указана, по умолчанию удаляются пробелы; • в справа добавляется столько пробелов, сколько символов слева было удалено, то есть длина ос- тается неизменной. • RTRIM — удаление правых граничных символов RTRIM ([,]) • из удаляются справа символы, указанные в ; • если не указан