.RU

4.3.Как проектируют базы данных - Методические указания для студентов специальности 2205, 0755 «Проектирование и...


^ 4.3.Как проектируют базы данных
Обычно современные СУБД содержат средства, позволяющие создавать таблицы и ключи. Существуют и утилиты, поставляемые отдельно от СУБД (и даже обслуживающие несколько различных СУБД одновременно), позволяющие создавать таблицы, ключи и связи.

Еще один способ создать таблицы, ключи и связи в базе данных - это написание так называемого DDL-сценария (DDL - Data Definition Language).

Наконец, есть еще один способ, который становится все более и более популярным, - это использование специальных средств, называемых CASE-средствами (CASE означает Computer-Aided System Engineering). Существует несколько типов CASE-средств, но для создания баз данных чаще всего используются инструменты для создания диаграмм “сущность-связь” (entity-relationship diagrams, E/R diagrams). С помощью этих инструментов создается так называемая логическая модель данных, описывающая факты и объекты, подлежащие регистрации в ней (в таких моделях прототипы таблиц называются сущностями (entities), а поля - их атрибутами (attributes). После установления связей между сущностями, определения атрибутов и проведения нормализации создается так называемая физическая модель данных для конкретной СУБД, в которой определяются все таблицы, поля и другие объекты базы данных. После этого можно сгенерировать либо саму базу данных, либо DDL-сценарий для ее создания.
^ 5. ЯЗЫК ФОРМИРОВАНИЯ ЗАПРОСОВ К БАЗЕ ДАНЫХ.
Structured Query Languge (SQL)


Прототип языка SQL был разработан в конце 1970-х годов в компании IBM (SQL) в первом прототипе реляционной СУБД System R. Первый международный стандарт языка был принят в 1989 г. Бурное развитие информационных технологий и СУБД потребовало расширение стандарта. И в 1992, а затем 1999 г. были приняты соответственно второй и третий стандарты языка SQL. Современные перспективные СУБД содержат в своем составе SQL, соответствующий одному из стандартов. SQL/3 является полным языком и содержит не только операторы запросов, но и язык описания, манипулирования данными и операторы, предназначенные для администрирования БД.

Ниже перечислены основные операторы SQL.

Операторы определения данных:

CREATE TABLE - создать таблицу;

DROP TABLE - удалить таблицу;

ALTER TABLE - изменить таблицу;

CREATE VIEW - создать представление;

ALTER VIEW - изменить представление;

DROP VIEW - удалить представление;

CREATE INDEX - создать индекс;

DROP INDEX - удалить индекс

Операторы манипулирования данными.

DELETE - удалить строки;

INSERT - вставить строку;

UPDATE - обновить строку.

Язык запросов

SELECT - выбрать строки.

Средства управления транзакциями.

COMMIT - завершить транзакцию;

ROLLBACK - откатить транзакцию;

SAVEPOINT - сохранить промежуточную точку выполнения транзакции.

Средства администрирования данных.

ALTER DATABASE - изменить БД;

ALTER DBAREA - изменить область хранения БД;

ALTER PASSWORD - изменить пароль;

CREATE DATABASE - создать БД;

CREATE DBAREA - создать область хранения;

DROP DATABASE - удалить БД;

DROP DBAREA - удалить область хранения БД;

GRANT - предоставить права;

REVOKE - лишить прав.

Программный SQL

DECLARE - определить курсор для запроса;

OPEN - открыть курсор;

FETCH - считать строку из множества строк, определенных курсором;

CLOSE - закрыть курсор;

PREPARE - подготовить оператор SQL к динамическому выполнению;

EXECUTE - выполнить оператор SQL, ранее подготовленный к динамическому выполнению.

Необходимо отметить, что в каждой СУБД своя специфика реализации языка. Это, как правило, касается типов данных, способов задания констант, арифметических и логических операций и т.д. Здесь рассмотрим операторы манипулирования данными и оператор SELECT.
^ 5.1. Оператор выбора
Рассмотрим один из наиболее сложных операторов языка – оператор SELECT. Его синтаксис приведен ниже.

SELECT

[ALL | DISTINCT] [.][AS]

[,[.] [AS]...]

FROM [,[...]

[WHERE

[AND ...]

[AND/OR

[AND/OR ...]]]

[GPOUP BY [,...]]

[ORDER BY [,...]]]

[HAVING ]

Здесь ключевое слово ALL означает, что в результирующую выборку будут включаться все записи, удовлетворяющие запросу. DISTINСT предотвращает повторный вывод одних и тех же записей.

может содержать:

Необязательная фраза AS специфицирует заголовок колонки в выводе результата запроса. Это полезно, когда имеются или содержатся функции работы с полями и требуется присвоить колонке в результате соответствующее имя.

может быть выражением.

Если в разных базах одни и те же имена и они одновременно выводятся на экран, то колонки получат одинаковое название и букву алфавита fam; fam a, fam b ...

Если не устраивают имена колонок данных по умолчанию, можно их обозначить по-своему, используя выражение:

[AS ]

Псевдоним БД, откуда берется нужное поле может, быть назначен в команде SELECT. Вне команды действия не имеет. Рассмотрим примеры. Будем использовать спроектированную учебную базу BOOK , структура которой приведена ниже.





База спроектирована для компании занимающейся выпуском книг и содержащей несколько издательств.

Руководство компанией интересует информация о книгах, выпускаемых в издательствах, об авторах книг и редакторах, а также о финансовом положении компании. При этом в базе данных должно было быть учтено, что:

- автор может написать несколько книг;

- книга может быть написана несколькими авторами;

- порядок следования авторов в заглавии книги влияет на гонорар;

- редактор может работать с несколькими книгами и несколько редакторов с одной;

- в заказе на покупку может быть перечислено несколько книг.

Исходя из вышесказанного, были выделены объекты и определены их характеристики.

Объект Autors – авторы, книги которых опубликованы компанией, имеют следующие атрибуты: имя автора, полный адрес, где он проживает, телефон.

Объект Titles – книги, имеют атрибуты: название книги, ее стоимость, дату выпуска.

Объект Editors - редакторы, работающие на компанию, имеют атрибуты аналогичные объекту авторы: имя, адрес, телефон.

Объект Publishers – имеет атрибуты: наименование издательства, которыми владеет компания, его адрес, и телефон. В результате проектирования получим совокупность таблиц приведенную выше.

Допустим, необходимо вывести значения всех столбцов. Оператор SELECT в этом случае запишется:

SELECT *

FROM PUBLISERS


Pub_id

Pub_name

Address

City

State

Zip



















Тот же самый результат можно получить, перечислив в списке выбора все поля таблицы.

SELECT PUB_ID, PUB_NAME, ADDRESS, СITY, STATE, ZIP

FROM PUBLISHERS

Если необходимо осуществить выбор отдельных столбцов, то в списке выбора перечисляют необходимые столбцы в порядке их отображения на экране.

SELECT PUB_ID, PUB_NAME

FROM PUBLISHERS

С помощью оператора возможно переименование столбцов и задание имен выражениям. При выводе результатов запроса каждый столбец по умолчанию получает заголовок, совпадающий с его именем в БД. Поскольку столбцы в БД обычно имеют сокращенные имена, желательно им присвоить полные. Выполняется это с помощью предложения AS. В списке выбора пишут:

имя столбца AS имя заголовка

SELECT PUB_NAME AS PUBLISHERS, PUB_ID

FROM PUBLISHERS

Таблица с поименованными столбцами приведена ниже.


Publishers

pub_id








В большинстве систем ширина отображаемых столбцов устанавливается по максимальной длине заголовка (но не уже находящихся в них данных). Как правило, в заголовках столбцов нельзя использовать кавычки и пробелы, поэтому нет возможности применять русские названия столбцов. Если в списке выбора задано выражение, то для него тоже можно создать заголовок.

Например, если мы хотим посмотреть, как изменится стоимость книг, если мы увеличим их стоимость на 10% , то запрос может выглядеть так:

SELECT TITLE, PRICE AS OLD_PRICE, PRICE * 1.1 AS NEW_PRICE

FROM TITLE

TITLE

OLD_PRICE

NEW_PRICE










Пояснения в строках

Например:

SELECT 'СТОИМОСТЬ КНИГИ', TITLES, 'СТАЛА', PRICE*1.1 AS NEW_PRICE

FROM TITLE

В списках с числовыми данными и константами можно выполнять следующие арифметические действия: +, -, *, /. (в некоторых системах введена операция остаток от деления - %)

Таблицам можно присвоить имена- псевдонимы, что бывает полезно для осуществления соединения таблицы с самой собой или для доступа из вложенного подзапроса к текущей записи внешнего запроса.

Например:

SELECT Р. PUB_ID, Р.PUB_NAME

FROM PUBLISHERS Р

р – здесь псевдоним, p.pub_id – полное наименование поля.

Выполнение запроса

SELECT * FROM AUTORS, TITLES

Соответствует декартову произведению таблиц AUTORS, TITLES.

a-s-serebryakov-v-state-pokazani-istoriya-obrazovaniya-i-etapi-razvitiya-instituta-otrazheni-osnovnie-napravleniya-deyatelnosti.html
a-s-shevchenko-naimenovanie-dolzhnosti-rukovoditelya-emitenta-podpis-i-o-familiya-data-09-noyabrya-2007-g-stranica-9.html
a-s-spirin-spirin-aleksandr-sergeevich.html
a-s-tyakunov-sbornik-trenirovochnih-testovih-zadanij-po-russkomu-yaziku-dlya-podgotovki-k-itogovoj-attestacii-9-klass-stranica-7.html
a-s-volgina-iosif-brodskij.html
a-sajte-mok-httpswww-olympic-orgmedical-i-sajte-vada-www-wada-ama-org-perevod-dokumenta-na-russkij-yazik-vipolnen-isklyuchitelno-v-informacionnih-celyah-prev-stranica-3.html
  • control.bystrickaya.ru/celi-oop-200100-priborostroenie-osnovnaya-obrazovatelnaya-programma-visshego-professionalnogo-obrazovaniya-obshie-polozheniya.html
  • knowledge.bystrickaya.ru/mezhdunarodnaya-konferenciya-aktualnie-voprosi-akusherstva-ginekologii-i-perinatologii.html
  • klass.bystrickaya.ru/angarskij-torgovij-forum.html
  • kontrolnaya.bystrickaya.ru/puteshestvie-gullivera.html
  • znaniya.bystrickaya.ru/programma-zanyatij-kruzhka-dlya-5-6-klassov-moj-kompyuter-1-god-obucheniya.html
  • apprentice.bystrickaya.ru/vii-razvitie-pravovoj-kulturi-molodih-polzovatelej-i-statisticheskie-pokazateli-po-rabote-s-molodyozhyu-v-publichnih.html
  • education.bystrickaya.ru/1-predmet-kontrakta-tehnicheskoe-zadanie-dlya-provedeniya-zaprosa-kotirovok-na-pravo-zaklyucheniya-gosudarstvennogo.html
  • institut.bystrickaya.ru/tochka-izmeneniya-i-massovaya-psihologiya-samoorganizacii.html
  • universitet.bystrickaya.ru/spravka-otchet-po-celevoj-programme-prezidiuma-ran-podderzhka-molodih-uchenih-za-2009-god.html
  • composition.bystrickaya.ru/pokazaniya-dlya-lecheniya-v-sanatorii.html
  • zanyatie.bystrickaya.ru/ohrana-truda-v-finlyandii-chast-2.html
  • shkola.bystrickaya.ru/programma-socialno-ekonomicheskogo-razvitiya-rostovskoj-oblasti-na-2008-2012-godi-pasport-programmi-socialno-ekonomicheskogo-stranica-7.html
  • lecture.bystrickaya.ru/4-perspektivi-razvitiya-obshestva-godovoj-otchyot-otkritoe-akcionernoe-obshestvo-samaranefteprodukt-avtomatika-za-2009.html
  • education.bystrickaya.ru/22-organizaciya-i-provedenie-razvivayushej-igri-shkolnaya-perepis-metodicheskie-rekomendacii-po-provedeniyu-informacionno-razyasnitelnoj.html
  • pisat.bystrickaya.ru/tretya-kniga-stranica-8.html
  • lektsiya.bystrickaya.ru/primernij-tematicheskij-plan-po-predmetu-teoriya-sovremennoj-kompozicii.html
  • books.bystrickaya.ru/deyatelnost-komitetov-i-komissij-gd-gosduma-rf-monitoring-smi-16-maya-2008-g.html
  • uchit.bystrickaya.ru/tema-5-stoimostnoe-izmerenie-i-ocenka-v-buhgalterskom-uchete-zadachi-i-prakticheskie-situacij-po-kursu-uchebno-metodicheskoe.html
  • prepodavatel.bystrickaya.ru/tablica-14-osnovnie-pokazateli-programma-socialno-ekonomicheskogo-razvitiya-municipalnogo-obrazovaniya.html
  • lesson.bystrickaya.ru/setevaya-telefoniya-chast-5.html
  • thesis.bystrickaya.ru/programma-obyazatelnogo-uchebnogo-kursa-dlya-specialnosti-yurisprudenciya.html
  • institut.bystrickaya.ru/uchebnij-plan-5-rezhim-raboti-shkoli-6-kadrovoe-obespechenie-obrazovatelnogo-processa-7-rezultati-obrazovatelnoj-deyatelnosti.html
  • ekzamen.bystrickaya.ru/rodovie-harakteristikimishleniya-koncepciya-psihicheskih-processov-i-m-sechenova.html
  • institut.bystrickaya.ru/sto-pudov-125-ot-201207-g-sto-pudov-77-ot-11-01-07-g.html
  • turn.bystrickaya.ru/p114-a-v-specialnom-polozhenii-po-upakovke-pp43-zamenit-1a2-ili-1b2-na-1a2-1b2-ili1n2-p114-a.html
  • shpargalka.bystrickaya.ru/v-v-nagovicin-g-ulan-ude-dom-pravitelstva.html
  • abstract.bystrickaya.ru/1-o-snyatii-s-rassmotreniya-v-komitetah-i-komissiyah-verhovnogo-soveta-pridnestrovskoj-moldavskoj-respubliki.html
  • lesson.bystrickaya.ru/prezident-poruchil-podgotovit-plan-vnedreniya-elektronnogo-sudoproizvodstva-v-arbitrazhnih-sudah-kommersant-gazeta-moskva-otdel-politiki20-12-2010-10-stranica-7.html
  • learn.bystrickaya.ru/gazpromu-zamorozili-nalogi-nezavisimaya-gazeta-kulikov-sergej-03032008-42.html
  • crib.bystrickaya.ru/iskusstvo-kak-slozhnaya-samoorganizuyushayasya-sistema.html
  • portfolio.bystrickaya.ru/plan-raboti-shkoli-yunih-fizikov-na-20102011-uchebnij-god-meropriyatiya.html
  • uchit.bystrickaya.ru/tablica-21622-normativi-i-parametri-sanitarno-ozdorovitelnih-meropriyatij-lesohozyajstvennij-reglament.html
  • spur.bystrickaya.ru/kreml-166-a-g-gachevoj-i-s-g-semenovoj-tradiciya.html
  • upbringing.bystrickaya.ru/komanda-kontakt-gimnaziya-10-g-minska-10-e-klassi-voprosi-zadaniya-3.html
  • lesson.bystrickaya.ru/sobstvennik-ili-upolnomochennij-im-organ-kak-subekt-trudovogo-prava-ukraini.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.