Читайте также: |
|
Основные компоненты MS Access:
построитель таблиц;
2. SQL. Возможности совместной обработки таблиц.
В запросах SELECT, UPDATE – перечисление искомых полей нескольких таблиц через прямое указание вида название_таблицы.название_поля, либо через параметр FROM [].
SELECT [STRAIGHT_JOIN]
[DISTINCT | DISTINCTROW | ALL]
expression ,...
[INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
[FROM table_references
[WHERE where_definition]
[GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC],...]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC],...]
[LIMIT [offset,] rows]
[PROCEDURE procedure_name]
[FOR UPDATE | LOCK IN SHARE MODE]]
SELECT column1, column2
FROM table1, table2
WHERE […]
Объединение таблиц в запросе SELECT – см. 45. Группировка данных в запросе – см. 43.
3. Задача.
Построить ER-модель для следующей предметной области.
В организации работает N сотрудников. Для каждого из них фиксируется: Фамилия, имя, отчество, дата рождения, пол, адрес, телефон; образование, должность, разряд.
Сотрудник работает в каком-то одном подразделении.
Одни сотрудники получают фиксированную заработную плату – оклад.
Другая категория сотрудников работает на условиях почасовой оплаты. Для каждого сотрудника размер почасовой оплаты устанавливается индивидуально.
Для всех сотрудников фиксируются их отсутствия на работе (болезнь, отпуск, прогул и т.п.).
Для сотрудников, работающих на условиях почасовой оплаты, ведется ежедневный учет отработанного времени.
Заведующий кафедрой
бизнес-аналитики
Т.К.Кравченко ______________
БАЗЫ ДАННЫХ
-----------------------------------------------------------------------------------------------------------------------------
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ N 18.
Вопросы:
1. Ограничения целостности связи. Возможности реализации в современных СУБД.
Значение атрибута, отражающего связь между объектами и являющегося внешним ключом отношения, обязательно должно совпадать с одним из значений атрибута, являющегося ключом отношения, описывающего соответствующий объект.
Контроль целостности связей Из перечисленных видов связи наиболее широко используется связь вида 1:М. Связь вида 1:1 можно считать частным случаем связи 1:М, когда одной записи главной таблицы соответствует одна запись вспомогательной таблицы. Связь М:1 по сути, является «зеркальным отображением» связи 1:М. Оставшийся вид связи М:М характеризуется как слабый вид связи или даже как отсутствие связи. Поэтому в дальнейшем рассматривается связь вида 1:М.
При образовании связи вида 1:М одна запись главной таблицы (главная, родительская запись) оказывается связанной с несколькими записями дополнительной (дополнительные, подчиненные записи).
Контроль целостности связей обычно означает анализ содержимого двух таблиц на соблюдение следующих правил:
· каждой записи основной таблицы соответствует нуль или более записей дополнительной таблицы;
· каждая запись дополнительной таблицы имеет ровно одну родительскую запись основной таблицы.
Контроль целостности осуществляется при выполнении следующих основных операций над данными двух таблиц:
· ввод новых записей,
· модификацию записей,
· удаление записей.
При вводе данных новых записей возникает вопрос определения такой последовательности ввода записей в таблицы, чтобы не допустить нарушение целостности. Исходя из приведенных правил, логичной является схема, при которой данные сначала вводятся в основную таблицу, а потом — в дополнительную. При этом контроль целостности может заключаться как в запрете выполнения нарушающих целостность действий (режим запрета добавления записи в дочернюю таблицу, если нет соответствующей записи в родительской), так и на обновление связанных записей с целью сделать корректным изменение данных (обработка обновления — исправление значения внешнего ключа во всех дочерних записях при изменении значения первичного ключа в родительской записи). + рассказать про Ервин. Relationship Editor.
2. SQL. Упорядочение данных. Операция объединения.
1. Объединение таблиц
(SELECT) FROM <список исходных таблиц>
< выражение естественного объединения >
< выражение объединения >
< выражение перекрестного объединения >
< выражение запроса на объединение >
<список исходных таблиц>::= <имя_таблицы_1> [ имя синонима таблицы_1] [ …] [,<имя_таблицы_n>[ <имя синонима таблицы_n> ] ]
<выражение естественного объединения>:: =
<имя_таблицы_1> NATURAL { INNER | FULL [OUTER] LEFT [OUTER] | RIGHT [OUTER]} JOIN <имя_таблицы_2>
<выражение перекрестного объединения>:: = <имя_таблицы_1> CROSS JOIN <имя_таблицы_2>
<выражение запроса на объединение>::=
<имя_таблицы_1> UNION JOIN <имя_таблицы_2>
<выражение объединения>::= <имя_таблицы_1> { INNER
FULL [OUTER] | LEFT [OUTER] | RIGHT [OUTER]}
JOIN {ON условие | [USING (список столбцов)]} <имя_таблицы_2>
В этих определениях INNER — означает внутреннее объединение, LEFT — левое объединение, то есть в результат входят все строки таблицы 1, а части результирующих кортежей, для которых не было соответствующих значений в таблице 2, дополняются значениями NULL (неопределено). Ключевое слово RIGHT означает правое внешнее объединение, и в отличие от левого объединения в этом случае в результирующее отношение включаются все строки таблицы 2, а недостающие части из таблицы 1 дополняются неопределенными значениями, Ключевое слово FULL определяет полное внешнее объединение: и левое и правое. При полном внешнем объединении выполняются и правое и левое внешние объединения и в результирующее отношение включаются все строки из таблицы 1, дополненные неопределенными значениями, и все строки из таблицы 2, также дополненные неопределенными значениями.
Ключевое слово OUTER означает внешнее, но если заданы ключевые слова FULL, LEFT, RIGHT, то объединение всегда считается внешним.
MySQL не поддерживает ключевое условие FULL JOIN.
INNER JOIN возвращает строки, в которых есть хотя бы одно совпадение в обеих таблицах.
SQL INNER JOIN
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name |
INNER JOIN делает то же самое, что и JOIN.
SQL LEFT JOIN
LEFT JOIN возвращает все строки из левой таблицы (table_name1), даже если в правой таблице (table_name2) к ним нет совпадений.
SQL LEFT JOIN
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name |
SQL RIGHT JOIN
RIGHT JOIN возвращает все строки из правой таблицы (table_name2), даже если в левой таблице (table_name1) к ним нет совпадений.
SQL RIGHT JOIN
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name Никогда не следует указывать в части «ON» какие бы то ни было условия, накладывающие ограничения на строки в наборе результатов. Если необходимо указать, какие строки должны присутствовать в результате, следует сделать это в выражении WHERE. |
Объединение запросов
SQL UNION
Оператор UNION используется для объединения наборов результатов от двух или более запросов SELECT.
Обратите внимание, что все запросы SELECY внутри оператора UNION должны содержать одинаковое количество столбцов. В столбцах также должны совпадать типы данных. Столбцы во всех запросах должны располагаться в одинаковом порядке.
SQL UNION
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 |
Оператор UNION выбирает только различные значения. Для выбора с учетом повторов, используйте UNION ALL.
SQL UNION ALL
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 |
Названия столбцов в итоговом результате оператора UNION всегда совпадают с названиями в первом запросе SELECT этого оператора.
3. Задача.
Построить структуру реляционной базы данных
Заведующий кафедрой
бизнес-аналитики
Т.К.Кравченко ______________
БАЗЫ ДАННЫХ
-----------------------------------------------------------------------------------------------------------------------------
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ N 19.
Вопросы:
1. Возможности совместной обработки таблиц в реляционных СУБД.
Будем рассматривать на примере Access. Сетевые возможности наиболее развиты в корпоративных СУБД, но в связи с повсеместной распространенностью сетевых технологий настольные СУБД также обеспечивают работу в многопользовательском режиме. Access, как и большинство других СУБД, тоже обеспечивает возможность многопользовательской работы с базой данных. Допускается до 255 одновременно работающих с базой данных пользователей.
В Access используется своеобразное понятие базы данных: базы данных включают в своем составе не только таблицы и связи между ними (что традиционно считается базой данных), но и запросы, отчеты, модули, макросы и другие объекты. В связи с этим при работе в многопользовательском режиме возникают дополнительные проблемы и имеются специальные средства для их разрешения.
Дата добавления: 2015-07-20; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Однако, существуют процедурные расширения языка, где такие конструкции есть. К примеру, PL/SQL (Procedural Language/…) – прим.ред. | | | Существует несколько способов совместного использования данных в многопользовательской среде. |