
- •Базы данных.
- •2. Концептуальная, логическая, внутренняя, внешняя модели данных. Формы записи концептуальных моделей. Физическая и логическая зависимость данных.
- •3. Индексирование таблиц. Определение индекса и его значение. Типы индексов.
- •4. Связывание таблиц. Назначение, типы связей и средства установки связей.
- •Основные команды языка запросов sql с примерами.
- •6. Распределенная база данных. Определение, основные термины, типы моделей, достоинства и недостатки.
- •Этапы и шаги проектирования и создания баз данных
- •1.4. Определение доменов атрибутов.
- •1.5. Определение первичных и вторичных ключей.
- •1.6. Определение суперклассов и подклассов для типов сущностей.
- •1.7. Создание er-диаграмм для отдельных пользователей.
- •2.6. Создание er-диаграмм для отдельных пользователей.
- •3.4. Создание er-диаграммы глобальной логической модели.
- •4. Создание глобальной логической модели в среде целевой субд.
- •6. Разработка механизма защиты.
- •9. Жизненный цикл базы данных (жц бд). Определение, виды моделей жц бд, достоинства и недостатки.
- •Типы моделей
- •10. Механизм транзакций и блокировок. Триггеры, хранимые процедуры. Определение и назначение.
Основные команды языка запросов sql с примерами.
Selectявляется мощным средством создания запросов на выборку информации. Приведем ее предварительный Синтаксис:
Select <поля, выражения или*> From <исходные таблицы>
Where <условие отбора записей> Group By <поля для группировки>
Having <условие отбора группы> Order By<поля для сортировки>\
Рассмотрим фразы команды (не все фразы обязательны).
Select [Distinct ] <выражение> [[As] <псевдоним> ][,…]
From <таблица> [<тип связи> Join <таблица> On <условие связи>]…
Distinct– дублирующие записи запроса не выводятся. Имя поля может быть составным, с включением имени таблицы, точки и самого имени таблицы. Если имя таблицы содержит пробелы, то оно заключается в апострофы. Вместо имени поля можно указать звездочку, если необходимо построить выборку из всех полей таблицы.
Псевдоним – задает наименование колонки (пробелы запрещены). Для связывания таблиц используется фразаJoin. Тип связи задается словами:Left/Right (в запрос входят все записи из таблицы, состоящей в запросе слева/справа),Inner (входят только записи с совпадающими ключами связи).
Примерзадания базового запроса по базе строек:
SelectStroiki.Ds,Stroiki.Ss,Stroiki.Fs,Stroiki.M,Stroiki.Em,Podrjdhiki.Np,Zakazhiki.NzFROM“stroiki.DB”Stroiki
Inner Join “zakazhiki.db” Zakazhiki ON (Stroiki.Kz = Zakazhiki.Kz)
Inner Join “podrjdhiki.db” Podrjdhiki ON (Stroiki.Kp = Podrjdhiki.Kp)
В результате выполнения запроса получается совокупность колонок, в заголовках которых могут находиться имена полей. Если вас не устраивают имена, формируемые по умолчанию, то можно назначить свои (псевдонимы), указав их после слова AS. В выражении могут использоваться специальные арифметические функции, действующие «по вертикали»: среднее значение по группе(Avg),минимальное(Min),максимальное(Max),сумма(Sum),число записей в группе(Count).Функция может иметь в качестве аргумента звездочку(Count(*)),что означает подсчет всех записей, попавших в выборку.
Where <условие отбора>- условие отбора записей в запрос. В условиях допускается использование логических операторовAnd, Or, Notи круглых скобок. В условиях, кроме любых функций Pascal, могут содержаться следующие операторы SQL:
<выражение> Like<шаблон> позволяет построить условие сравнения по шаблону, набор символов: "_" (неопределенный символ), "%" (любые символы, например: Where Ns Like 'Школа%'), [n-k]% (любые символы из интервала от п до k, например: Like '[A-D]%');
<выражение> Between<нижнее значение>And<верхнее значение> проверяет, находится ли выражение в указанном диапазоне (Where [Ss] Between 0 And 1000000);
<выражение> In(<выражение>,<выражение>,...) проверяет, находится ли выражение, стоящее слева от слова IN, среди перечисленных справа от него (Where Kz In (1,2,6)).
Group By <колонка>[,<колонка>...]- задаются колонки, по которым производится группирование выходных данных. Все записи таблицы, для которых значения колонок совпадают, отображаются в выборке единственной строкой. Группирование удобно для получения некоторых сиодных характеристик (суммы, число записей, среднее) группы.
Пример. Вывести число сотрудников, максимальную, среднюю, минимальную и итоговую зарплату по подразделениям (поле Pord) по таблице SOTRUDNIKI.
Select podr, Count(*),Min (zarpl), Avg (zarpl), Max(zarpl), Sum (/nipl)
From Sotrudniki Group By podr Order By podr
Having <условие отбора группы>задает кртерий отбора сформированных в процессе выборки групп.
Order By <колонка> [Аsc/Desc] [,колонка> [Asc/Dtsc]…] - опция, которая задаст упорядочение по возрастанию (Desc). Колонка задается номером или именем поля (Order By Кр, Kz).
Рассмотрим другие команды SQL.
Create Table <имя таблицы> (<поле> <тип поля> [Not Null],...) - создание таблицы (Create Table Kadr (Tab Integer, Fam Char (30) Not Null Primary Key (Tab))). Обязательное присутствие значения в поле задается параметром Not Null. Основные типы полей в SQL в Delphi: Smalllnt (Short), Integer (Long Integer), Numeric(x,y), Float (x,y), Char (n), Data, Boolean, Time, Money, Autoinc. Для других СУБД типы полей могут быть другими.
Create View <имя представления> [(<имя столбца>,...)] As <onepamop Select>- создание представления с новыми именами столбцов (Create View NameStroek As Select Stroiki.Ns FROM Stroiki).
Alter Table <имя таблицы> {Add \ Modify \ Drop} <поле> [<тип поля>] [Not Null,...- изменение структуры таблицы: включение (Add), изменение (Modify) и удаление (Drop, тип поля не указывается) полей таблицы (Alter Table Stroiki Add Gorod Integer Drop Kp).
Update <таблица> Set <имя поля>={<новое 3HO4eHue>\Null}, ... [Where <условие>] - изменение значений полей (Update Kadr Set Oklad=1.5*Oklad Where Сех="Цех N2").
Insert Into<UMH таблицы>(<список полей>) {Values (<список значений>)\ Select...}- включение новой записи или группы записей из другой таблицы.
Примеры
Insert Into Zakazhiki (Kz.Nz) Values (3,'ЗИЛ1); // включение одной записи Insert Into Podrjdhiki (Kp.Np) Select KPodr, NPodr From SpravPodr Where DSozd >01.01.80; //включение группы записей из таблицы SpravPodr
Create [Unique] Index <имя индекса> On <таблица> (<поле> [{dsc\esc}],...)- создание индекса (Create index indproba on stroiki (kz, kp)).
Drop Table/View <имя>- удаление таблицы/представления (Drop Table Stroiki).
Drop Index ["<имя таблицы>".]<имя индекса>- удаление индекса.
Drop Index [“<имя таблицы>".]Primary- удаление главного индекса.
Delete From <имя таблицы> [Where<ycnoeue>] - удаление записей.
В запросе любого типа может быть вложенный запрос, который называется подзапросом. Подзапрос- это запрос, результат которого используется в условии отбора в выражении Where другого внешнего запроса. Подзапрос заключается в круглые скобки.
Пример. Вывести крупные стройки со сметой выше средней по стройкам: Select * From Stroiki Where Ss > (Select Avg(Ss) From Stroiki).