![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
1. Даталогическое моделирование.
Модель даталогическая (datalogical) (ДЛМ) — логическая модель БД в терминах конкретной СУБД; отображение логических связей между элементами данных
В ERWin это физическая модель – прим. ред.
Прежде чем приступить к построению даталогической модели, необходимо детально изучить особенности СУБД, определить факторы, влияющие на выбор проектного решения, ознакомиться с существующими методиками проектирования, а также провести анализ имеющихся средств автоматизации проектирования, возможности и целесообразности их использования.
Хотя даталогическое проектирование соотносится с логической структурой базы данных, на него оказывают влияние возможности физической организации данных, предоставляемые конкретной СУБД. Поэтому знание особенностей физической организации данных является полезным при проектировании логической структуры.
Логическая структура базы данных, а также сама заполненная данными база данных являются отображением реальной предметной области. Поэтому на выбор проектных решений самое непосредственное влияние оказывает специфика отображаемой предметной области, отраженная в инфологической модели.
Все шаги проектирования даталогической модели выполняются итеративно. Причем вероятны итерации не только внутри стадии даталогического проектирования, но и с «захватом» других стадий проектирования БД.
Конечным результатом даталогического проектирования является описание логической структуры базы данных на ЯОД. (в нашем случае – скрипт на SQL Для генерации БД – прим. ред.)
Для реляционной базы данных проектирование логической структуры заключается в том, чтобы разбить всю информацию по файлам, а также определить состав полей для каждого файла. Определение ключа каждого из отношений также является задачей логического проектирования реляционной БД.
Существуют разные методы проектирования логической структуры реляционных баз данных. Среди них есть и строгие математические методы, обычно базирующиеся на теории нормализации. Они имеют очень большое значение в качестве теоретической основы проектирования БД, но в связи с вычислительной сложностью алгоритмов практически не используются в реальном проектировании систем.
2. SQL. Понятие курсора. Использование курсоров.
Курсоры обычно используются в рамках SQL, встроенного в программы, написанные на языке процедурного типа. Использование курсоров вызвано необходимостью стыковать позаписные включающие языки и теоретико-множественный язык SQL. Курсор определяется посредством оператора объявления курсора (DECLARE CURSOR). Этот оператор определяет имя курсора, а так же содержит в своем составе запрос, выходные данные которого сохраняются для последующей обработки включающей программой:
DECLARE <имя_курсора > [INSENSITIVE] [SCROLL] CURSOR
FOR <подзапрос> [<предложение для обновления>]
Курсор находится либо в открытом состоянии, либо в закрытом. Начальное состояние курсора - закрытое. Для открытия курсора используется оператор OPEN CURSOR <имя курсора>. Запрос, описанный при определении курсора, выполняется именно при открытии курсора. При первом открытии курсор устанавливается перед первой строкой. Позиция курсора в открытом состоянии может быть перед определенной строкой, на определенной строке или после последней строки. Если курсор установлен на строку, то эта строка является текущей строкой курсора.
Для построчного извлечения данных из курсора используется оператор FETCH. Этот оператор продвигает позицию открытого курсора на следующую строку в порядке этого курсора, извлекает значения полей этой строки в переменные и имеет следующий синтаксис:
FETCH [[orientation] FROM] имя курсора
INTO целевая спецификация.,..;
orientation::=
NEXT | PRIOR | FIRST | LAST | {ABSOLUTE | RELATIVE
спецификация значения}
Значения NEXT, PRIOR, FIRST, LAST понятны без дополнительного пояснения. Значение ABSOLUTE N вызывает перемещение на N-ю строку, а значение RELATIVE N - перемещение на N строк вперед, если N - положительное число, и на N строк назад, если N -отрицательное число.
Если задано предложение INSENSITIVE (нечувствительный), то, пока курсор открыт, все изменения над данными курсора будут игнорироваться.
Строки открытого курсора имеют определенный порядок. Для того чтобы установить нужный порядок, можно использовать в операторе SELECT предложение ORDER BY. В противном случае порядок устанавливается реализацией.
Если задано предложение SCROLL, то не обязательно извлекать строки в том порядке, который задан при открытии.
Курсоры могут быть двух типов: обновляемые и только для чтения. Чтобы курсор был обновляемым, он должен базироваться на одной и только одной таблице, не содержать предложения ORDER BY, не объявляться как INSENSITIVE или SCROLL.
Курсор возвращается в закрытое состояние посредством использования оператора закрытия курсора CLOSE <имя курсора.>
Дата публикования: 2015-01-24; Прочитано: 574 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!