.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
  • teacher.bystrickaya.ru/glava-devyataya-xviii-vek-germaniya-i-franciya-1-germaniya-shtal-i-goffman.html
  • letter.bystrickaya.ru/metodika-normirovaniya-skorostej-dvizheniya-avtobusov-na-mezhdugorodnih-marshrutah.html
  • tetrad.bystrickaya.ru/v-a-ladov-iskusstvennij-intellekt-na-osnove-teorii-invariantnogo-predstavleniya-epistemologicheskie-problemi.html
  • uchitel.bystrickaya.ru/rabochej-programmi-uchebnoj-disciplini-ekonometrika-uroven-osnovnoj-obrazovatelnoj-programmi.html
  • pisat.bystrickaya.ru/stroitelstvo-vooruzhennih-sil-rossijskoj-imperii-v-period-gosudarstvenno-pravovih-preobrazovanij-vo-vtoroj-polovine-xix-veka-istoriko-pravovoe-issledovanie-stranica-9.html
  • obrazovanie.bystrickaya.ru/programma-minimum-kandidatskogo-ekzamena-po-specialnosti-13-00-02-teoriya-i-metodika-obucheniya-i-vospitaniya-russkij-yazik.html
  • prepodavatel.bystrickaya.ru/sroki-i-ozhidaemie-rezultati-realizacii-meropriyatij-programmi-programma-socialno-ekonomicheskogo-razvitiya-rostovskoj.html
  • student.bystrickaya.ru/1-pohozhe-na-vstuplenie-harkov-eshe-spal-kogda-kolonna-kommunarov-proshla-cherez-gorod-ot-vokzala-v-kommunu-ozhidalsya-horoshij-den-no-solnce-eshe-ne-vshodilo-za-stranica-2.html
  • uchitel.bystrickaya.ru/rastvorimost-kislot-osnovanij-i-solej-v-vode-zverev-i-d-maksimova-v-n-mezhpredmetnie-svyazi-v-sovremennoj-shkole.html
  • institute.bystrickaya.ru/eta-kniga-vishedshaya-iz-pod-pera-celoj-gruppi-vedushih-specialistov-predstavlyaet-soboj-interesnejshij-sbornik-nauchnih-rabot-i-kommentariev-issleduyushih-teoriyu-i-p-stranica-17.html
  • education.bystrickaya.ru/32-srednie-effektivnie-procentnie-stavki-i-kratkie-svedeniya-o-licah-vhodyashih-v-sostav-organov-upravleniya-kreditnoj.html
  • uchit.bystrickaya.ru/sravnitelnie-issledovaniya-dinamicheskogo-kachestva-.html
  • kolledzh.bystrickaya.ru/administrativnaya-otvetstvennost-kak-kompleks-mer-otvetstvennosti-predstavlyayushih-v-sovokupnosti-raznovidnost-yuridicheskoj-otvetstvennosti.html
  • crib.bystrickaya.ru/istoriografiya-problemi-stepen-ee-izuchennosti.html
  • thesis.bystrickaya.ru/primernaya-programma-disciplini-detskaya-stomatologiya-modul-medicinskaya-genetika.html
  • lecture.bystrickaya.ru/annotaciya-programmi-disciplini-himiya-i-fizika-visokomolekulyarnih-soedinenij-i-izdelij-na-ih-osnove-uchebnogo-plana-napravleniya-podgotovki-100800-tovarovedenie.html
  • essay.bystrickaya.ru/dopolnenie-ko-vsemu-skazannomu-o-voennoj-familii-aleksandr-pokrovskij-72-metra.html
  • composition.bystrickaya.ru/plan-raboti-na-2011-2012-uchebnij-god-stranica-3.html
  • abstract.bystrickaya.ru/-12-apogej-revolyucii-levandovskij-a-a-shetinov-yu-a-rossiya-v-xx-veke-ucheb-dlya-10-11-kl-obsheobrazovat-uchrezhdenij.html
  • doklad.bystrickaya.ru/verhovnij-sud-rossijskoj-federacii-opredelenie-ot-28-aprelya-2011-g-n-69-d11-5.html
  • urok.bystrickaya.ru/proezd-chlanskij-m-n-petrenko-m-n-nikolaeva-sdano-v-nabor-16-01-95-podpisano-v-pechat-25-05-95-format.html
  • teacher.bystrickaya.ru/glava-iii-strahovoj-stazh-kommentarij-k-pensionnomu-zakonodatelstvu.html
  • paragraf.bystrickaya.ru/zhizn-neredko-stavit-nas-v-polozheniya-trudnie-no-nikogda-v-bezvihodnie-eto-vovse-ne-znachit-chto-vihod-najdetsya-obyazatelno-v-nuzhnom-napravlenii-i-obyazateln-stranica-7.html
  • vospitanie.bystrickaya.ru/yunie-talanti-moskovii.html
  • uchit.bystrickaya.ru/teetet-platon.html
  • education.bystrickaya.ru/3-perehodi-mezhdu-liniyami-peredachi-razlichnih-tipov-linij-peredachi.html
  • otsenki.bystrickaya.ru/sbornik-dvenadcatoj-mezhregionalnoj-nauchnoj-studencheskoj-konferencii.html
  • writing.bystrickaya.ru/glava-devyataya-istoriya-voznosit-pobeditelej-i-bichuet-pobezhdennih-makkavei-sumeli-vistoyat-v-borbe-s-imperiej.html
  • kolledzh.bystrickaya.ru/47-forma-shejki-matki-u-nerozhavshih-uchebno-metodicheskij-kompleks-po-akusherstvu-i-ginekologii-dlya-studentov-6-go.html
  • institut.bystrickaya.ru/trebovaniya-k-putyam-evakuacii.html
  • lektsiya.bystrickaya.ru/pravitelstvo-respubliki-buryatiya-postanovlenie-stranica-16.html
  • holiday.bystrickaya.ru/o-provedenii-smotra-konkursa-na-luchshuyu-uchebno-materialnuyu-bazu-grazhdanskoj-oboroni-preduprezhdeniya-i-likvidaciya-vozmozhnih-chrezvichajnih-situacij-sredi-predpriyatij-organizacij-i-uchrezhdenij-goroda-podolska.html
  • letter.bystrickaya.ru/metodicheskie-ukazaniya-i-uchebnie-posobiya-bibliograficheskij-ukazatel-literaturi-postupivshej-v-biblioteku-iate.html
  • studies.bystrickaya.ru/kreditovanie-vo-vneshnetorgovoj-deyatelnosti-chast-7.html
  • diploma.bystrickaya.ru/vselennaya.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.