Физически обекти

Разгледани са проблемите, необходими на разработчика за създаване на приложения клиент-сървър, използвайки СУБД Firebird, която е разработката на СУБД Borland Interbase 6. Предоставен е преглед на концепциите и моделите на архитектурата клиент/сървър, както и практически препоръки за работа с клиентските библиотеки на Firebird. Характеристиките на типовете данни SQL, Data Manipulation Language (DML), както и синтаксисът и операторите на Data Definition Language (DDL) са описани подробно. Обръща се голямо внимание на описанието на транзакциите и съветите за тяхното използване при разработването на приложения. Той описва програмиране от страна на клиента и сървъра, писане на тригери и съхранени процедури, създаване и използване на събития в базата данни, обработка на грешки в кода на сървъра и много повече. Материалът е придружен с множество примери, съвети и практически препоръки.
За разработчици на бази данни
Книга: РЪКОВОДСТВО ЗА РАЗРАБОТЧИЧ НА БАЗА ДАННИ Firebird
Физически обекти
Секции на тази страница:
Таблица на база данни обикновено се изобразява като двуизмерен блок, състоящ се от колони (вертикално измерение) и редове (хоризонтално измерение). Съхранените атрибути на отделни елементи от данни са посочени в колони (обикновено свързани с или зависими от друга колона) и редове. Една таблица може да има произволен брой редове (до 232) или да няма никакви редове. Въпреки че всеки ред в една таблица споделя своите спецификации на колони с всеки друг ред, редовете са независими от другите редове в същата таблица.
СЪВЕТ. Firebird поддържа техники за внедряване на самореферентни таблици, структура на редове, която дефинира зависимости между редове в една и съща таблица. Вижте подробности всек. „Себеотнасящи се отношения“ Глава 17.
Файлове и страници
Ако мигрирате към Firebird от система от бази данни, която прилага таблици като колони и редове на физическа файлова система, тогава Firebird може да има някои изненади за вас. Във Firebird всички данни в една база данни се съхраняват в един файл или в много свързани файлове. В многофайловите бази данни няма взаимозависимост между който и да е обект на база данни и един елемент от множество файлове на база данни.
В рамките на един файл сървърът Firebird управлява дискови блокове с еднакъв размер, наречени страници на база данни. Той управлява някои различни "типове" страници според съхранените типове данни - например обикновени колони на таблици, BLOB, индекси. Когато е необходимо, сървърът разпределя нов блок към файловата система на хоста. Всички страници, независимо от вида, са с еднакъв размер. Размерът на страницата трябва да бъде указан в оператора CREATE DATABASE. Може да се промени само при архивиране и възстановяване на базата данни с нов размер на страницата с помощта на помощната програма gbak.
За разлика от системите за управление на файлови данни, Firebird изобщо не поддържа таблични данни в табличен формат. Редовете в една таблица не могат да бъдат съседни на други редове в същата таблица. Всъщност редовете на една и съща таблица могат да се намират в различни файлове и на различни дискове. Сървърът използва различни типове страници с инвентар, за да съхранява информация за физическото местоположение на редовете, които принадлежат към всяка таблица.
Колони и полета
Като цяло колоната е колекция от атрибути, които дефинират елемент от данни, който може да се съхранява в една посочена клетка в структура на ред на таблица отляво надясно. В същото време колоните всъщност не сасъществуват в таблиците на базата данни. Всеки път, когато се прави заявка към сървъра, заявката определя набор от колони и една или повече операции, които да бъдат извършени върху тези колони. Колоните не трябва да са в същия ред отляво надясно, както са дефинирани в таблицата. Например изразът SELECT FIELD3, FIELD1, FIELD2 FROM ATABLE;
ще изведе набор, в който редът на колоните ще съвпада с посочения в заявката. Заявката може да указва колони от различни таблици: съединения, подзаявки, съединения. Той може да дефинира колони, които изобщо не съществуват в базата данни, като ги направи изчислени или дори просто като ги зададе като наименувани константи.
В тази книга „поле“ се използва само като термин за обобщаване на концепцията за колона, аргумент и локална променлива и за препратка към изходни елементи, генерирани по време на изпълнение. „Колона“ се използва за обозначаване на физически колони, дефинирани за таблици.
първичен ключ
Основна част от процеса на проектиране на базата данни е да се разпредели в логическия модел на базата данни за всяка таблица една уникална колона или структура с няколко колони, която отличава всеки ред от всеки друг ред в таблицата. Такава уникална колона или комбинация от колони е логически първичен ключ (първичен ключ). Когато създавате вашия физически модел, вие използвате ограничението PRIMARY KEY, за да кажете на СУБД коя колона или колони формират тази уникална идентификационна структура. Можете да дефинирате само едно ограничение PRIMARY KEY на таблица. Синтаксисът се обсъжда в разд. "Ограничения" 16 глава.
Други уникални ключове
По време на вашето моделиране може да се случи по различни причини да имате нужда от повече от една уникална колонаили структури на колони в таблица. За да поддържа необходимата уникалност на такива колони или структури, Firebird предоставя УНИКАЛЕН ограничителен ключ. Това е алтернатива на първичния ключ и понякога може да се използва вместо първичния ключ, ако е необходимо.
Външни ключове
„Кабелите“, които правят една релационна база данни „релационна“, са външни ключове. Това е колоната или структурата на колоната, която е "много" страна на връзка "един към много" във вашия модел на данни. По физически дизайн външният ключ съответства на колоната или структурата на колоната на първичния ключ на страничната таблица "един" по този въпрос.
В следващия прост примерен модел редовете с подробности за поръчката са свързани към заглавката на поръчката чрез ключа ORDER_NUMBER.

Ориз. 14.1. проста връзка
Такъв модел изисква всеки заглавен ред да има уникален ORDER_NUMBER и да има поне един ред с подробности за поръчката за всеки заглавен ред. Други правила могат да се прилагат за факта на съществуване и за асоцииране. Firebird предоставя мощни задействащи процедури за настройка, договаряне и прилагане на правила към взаимоотношения. Освен това може да автоматизира много типични правила за управление на взаимоотношения, включително ограничение FOREIGN KEY с допълнителни аргументи за действие. Основата за такова ограничение са генерираните от системата тригери за референтна цялост. Поддръжката на референтна цялост във Firebird беше обсъдена накратко по-рано в раздел. "Референтна цялост" и ще бъдат разгледани подробно в Глава 17.
Сурогатни ключове
Колона, която е дефинирана като първичен ключ във вашия анализ или първичен ключов елемент, почти винаги ще съхранява елемент от данни, който има някоизначение. Вземете например таблица, която съхранява данни за човек: