Основные компоненты (объекты) базы данных
Раскрытие понятия термина базы данных. Основные декларативные ограничения целостности при создании таблиц. Использование оператора UNION для объединения таблиц. Осуществление вызова хранимой процедуры. Виды захвата объектов несколькими транзакциями.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 05.04.2021 |
Размер файла | 1,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Теоретисеская часть
1.1 Раскройте понятие термина база данных, какие составляющие в нее входят и их связи
База данных - это поименованная совокупность структурированных данных, относящихся к определенной предметной области. Под предметной областью будем понимать некоторую часть реального мира, информация о которой представлена в базе данных.
Основными компонентами (объектами) базы данных являются таблицы, запросы, формы, отчеты, макросы и модули.
Таблица - фундаментальная структура системы управления реляционными базами данных. В Microsoft Access таблица - это объект, предназначенный для хранения данных в виде записей (строк) и полей (столбцов). При этом каждое поле содержит отдельную часть записи (например, фамилию, должность или инвентарный номер). Обычно каждая таблица используется для хранения сведений по одному конкретному вопросу (например, о сотрудниках или заказах).
Запрос - вопрос о данных, хранящихся в таблицах, или инструкция на отбор записей, подлежащих изменению.
Перечислим типы запросов, которые могут быть созданы с помощью Microsoft Access:
* запрос-выборка, задающий вопрос о данных, хранящихся в таблицах, и представляющий полученный динамический набор в режиме формы или таблицы без изменения данных. Изменения, внесенные в динамический набор, отражаются в базовых таблицах;
* запрос-изменение, изменяющий или перемещающий данные. К этому типу относятся запрос на добавление записей, запрос на удаление записей, запрос на создание таблицы или запрос на ее обновление;
* перекрестные запросы, предназначенные для группирования данных и представления их в компактном виде;
* запрос с параметрами, позволяющий определить одно или несколько условий отбора во время выполнения запроса;
* запросы SQL, которые могут быть созданы только с помощью инструкций SQL в режиме SQL: запрос-объединение, запрос к серверу и управляющий запрос. Язык SQL (Structured Query Language) - это язык запросов, который часто используется при анализе, обновлении и обработке реляционных баз данных (например, Microsoft Access).
Форма - это объект Microsoft Access, в котором можно разместить элементы управления, предназначенные для ввода, изображения и изменения данных в полях таблиц.
Отчет - это объект Microsoft Access, который позволяет представлять определенную пользователем информацию в определенном виде, просматривать и распечатывать ее.
Макрос - одна или несколько макрокоманд, которые можно использовать для автоматизации конкретной задачи.
Макрокоманда - основной строительный блок макроса; самостоятельная инструкция, которая может быть объединена с другими макрокомандами для автоматизации выполнения задачи.
Модуль - набор описаний, инструкций и процедур, сохраненных под одним именем. В Microsoft Access имеется три типа модулей: формы, отчета и общий. Модули форм и отчетов содержат локальную программу для форм или отчетов. Если процедуры общего модуля явным образом не объявлены личными для модуля, в котором они появляются, значит, они распознаются и могут вызываться процедурами из других модулей этой базы данных.
База данных может содержать несколько модулей, в том числе общие модули, модули форм и модули отчетов.
1.2 Каким образом задаются декларативные ограничения целостности при создании таблиц
Существуют две группы ограничений целостности, обрабатываемых СУБД:
· декларативные ограничения целостности;
· процедурные ограничения целостности, которые обрабатываются триггерами (определение триггеров).
Декларативные ограничения объявляются с использованием операторов DDL create table и alter table. Они могут быть ограничениями на уровне столбца и ограничениями на уровне таблицы. Ограничения на уровне столбца вместе с типом данных и другими свойствами столбца помещаются в объявление столбца, в то время как ограничения на уровне таблицы всегда размещаются в конце операторов create table или alter table после объявления всех столбцов.
Каждое декларативное ограничение имеет имя. Имя ограничения может быть задано явно с использованием опции constraint в операторе create table или alter table. Если опция constraint отсутствует, Database Engine присваивает неявное имя этому ограничению.
Все декларативные ограничения могут быть разделены на несколько групп:
· предложение default;
· предложение unique;
· предложение primary key;
· предложение check;
· предложение foreign key и ссылочную целостность.
1.3 Какой оператор используется для объединения таблиц, имеющих одинаковую структуру
Оператор UNION объединяет результаты двух или более запросов в один результирующий набор, в который входят все строки, принадлежащие всем запросам в объединении:
select_1 UNION [ALL] select_2 {[UNION [ALL] select_3]}...;
Параметры select_1, select_2, … представляют собой инструкции SELECT, которые создают объединение. Если используется параметр ALL, отображаются все строки, включая дубликаты. По умолчанию дубликаты удаляются.
Объединять с помощью инструкции UNION можно только совместимые таблицы. Под совместимыми таблицами имеется в виду, что оба списка столбцов выборки должны содержать одинаковое число столбцов, а соответствующие столбцы должны иметь совместимые типы данных. Результат объединения можно упорядочить, только используя предложение ORDER BY в последней инструкции SELECT. Предложения GROUP BY и HAVING можно применять с отдельными инструкциями SELECT, но не в самом объединении.
1.4 Как осуществляется вызов хранимой процедуры
Хранимая процедура (англ. stored procedure) - это именованный программный объект БД. В SQL Server есть хранимые процедуры нескольких типов.
Системные хранимые процедуры (англ. system stored procedure) поставляются разработчиками СУБД и используются для выполнения действий с системным каталогом или получения системной информации. Их названия обычно начинаются с префикса "sp_". Запускаются хранимые процедуры всех типов с помощью команды EXECUTE, которую можно сократить до ЕХЕС. Например, хранимая процедура sp_helplogins, запущенная без параметров, формирует два отчета об именах учетных записей (англ. logins) и соответствующих им в каждой БД пользователях (англ. users).
EXEC sp_helplogins;
Чтобы дать представление о действиях, выполняемых с помощью системных хранимых процедур, в табл. 1 приведены некоторые примеры. Всего же системных хранимых процедур в SQL Server более тысячи.
Таблица 1 Примеры системных хранимых процедур SQL Server
Название |
Действие |
|
spchangedbowner |
Позволяет изменить владельца БД |
|
spdatabases |
Возвращает список БД и их размер |
|
spholp |
Принимает в качестве входного параметра имя объекта и возвращает о нем сведения. Например: exec sp_help @objname= 'dbo.Bookl' |
|
spstoredprocedures |
Возвращает список хранимых процедур в текущей БД |
|
sp_tables |
Возвращает список таблиц и представлений в текущей БД. которые можно запрашивать |
Пользователю доступно создание хранимых процедур в пользовательских БД и в БД для временных объектов. В последнем случае хранимая процедура будет являться временной. Так же как в случае с временными таблицами, название временной хранимой процедуры должно начинаться с префикса "#", если это локальная временная хранимая процедура, или с "##" - если глобальная. Локальная временная процедура может использоваться только в рамках соединения, в котором ее создали, глобальная - и в рамках других соединений.
Для выполнения хранимой процедуры используется команда:
[[EXECUTE] имя_процедуры [;номер]
[[@имя_параметра=]{значение | @имя_переменной}
[OUTPUT ]|[DEFAULT ]][,...n]
Если вызов хранимой процедуры не является единственной командой в пакете, то присутствие команды EXECUTE обязательно. Более того, эта команда требуется для вызова процедуры из тела другой процедуры или триггера.
Использование ключевого слова OUTPUT при вызове процедуры разрешается только для параметров, которые были объявлены при создании процедуры с ключевым словом OUTPUT.
Когда же при вызове процедуры для параметра указывается ключевое слово DEFAULT, то будет использовано значение по умолчанию. Естественно, указанное слово DEFAULT разрешается только для тех параметров, для которых определено значение по умолчанию.
1.5 Объясните работу триггеров, приведенных в примерах
Триггер - это особая разновидность хранимых процедур в базе данных. Особенность триггеров заключается в том, что SQL код, написанные в теле триггера, будет исполнен после того, как в базе данных произойдет какое-либо событие. События в базах данных происходят в результате выполнения DML команд или команд манипуляции данными. Если вы помните, то к командам манипуляции данными относятся: UPDATE, INSERT, DELETE и SELECT. Команду SELECT мы не берем в расчет из-за того, что она никак не изменяет данные в базе данных, а лишь делает выборку данных.
Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.
Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие -- не удаление записи). Некоторые СУБД накладывают ограничения на операторы, которые могут быть использованы в триггере (например, может быть запрещено вносить изменения в таблицу, на которой «висит» триггер, и т. п.).
Кроме того, триггеры могут быть привязаны не к таблице, а к представлению (VIEW). В этом случае с их помощью реализуется механизм «обновляемого представления». В этом случае ключевые слова BEFORE и AFTER влияют лишь на последовательность вызова триггеров, так как собственно событие (удаление, вставка или обновление) не происходит.
В некоторых серверах триггеры могут вызываться не для каждой модифицируемой записи, а один раз на изменение таблицы. Такие триггеры называются табличными.
Триггеры BEFORE и AFTER
Если в определении триггера указано ключевое слово BEFORE, то триггер будет срабатывать непосредственно до выполнения операции обновления базовой таблицы соответствующим инициирующим оператором SQL. При задании ключевого слова AFTER триггер будет вызываться немедленно после выполнения инициирующего оператора.
Триггеры INSERT, UPDATE и DELETE
Выбор одного из этих ключевых слов при определении триггера указывает на природу события, которое должно приводить к срабатыванию триггера. При задании ключевого слова INSERT к срабатыванию триггера может привести только выполнение операции вставки строк в предметную таблицу. Если указываются ключевые слова UPDATE или DELETE, то число возможных событий, приводящих к срабатыванию триггера, возрастает. Кроме явных операций модификации строк предметной таблицы или удаления из нее строк к срабатыванию триггера могут привести ссылочные действия.
Триггеры ROW и STATEMENT
Если в определении триггера присутствует конструкция FOR EACH ROW, то триггер будет вызываться для каждой строки предметной таблицы, обновляемой инициирующим SQL-оператором. Если же задано FOR EACH STATEMENT (или явная спецификация FOR EACH отсутствует), то триггер сработает один раз на всем протяжении процесса выполнения инициирующего SQL-оператора.
Раздел WHEN
Включение в определение триггера раздела WHEN с соответствующим условным выражением позволяет более точно специфицировать условие применимости триггера. Вычисление условного выражения производится над строками предметной таблицы, и триггер срабатывает только в том случае, когда значением условного выражения является true. Понятно, что виды и интерпретация логических выражений, допускаемых в разделе WHEN, различаются у триггеров с FOR EACH ROW и у триггеров с FOR EACH STATEMENT. В первом случае условное выражение вычисляется для одной строки, которая должна быть обновлена инициирующим SQL-оператором. Во втором - условное выражение вычисляется для всей предметной таблицы целиком и, по всей видимости, должно базироваться на «кванторных» предикатах. Следует также понимать, что вычисление условия раздела WHEN данного триггера производится только в том случае, если произошло событие срабатывания триггера.
Тело триггера
Операции, которые должны быть выполнены при срабатывании триггера, специфицируются в синтаксической конструкции triggered_SQL_statement (будем называть ее инициируемым SQL-оператором). Как видно из синтаксических правил, возможны два вида построения этой конструкции: в виде одиночного оператора SQL и в виде списка операторов со скобками BEGIN ATOMIC и END.
Простой синтаксис создания триггера
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt* This source code was highlighted with Source Code Highlighter.
, где:
trigger_name -- название триггера
trigger_time -- Время срабатывания триггера. BEFORE -- перед событием. AFTER -- после события.
trigger_event -- Событие:
insert -- событие возбуждается операторами insert, data load, replace
update -- событие возбуждается оператором update
delete -- событие возбуждается операторами delete, replace. Операторы DROP TABLE и TRUNCATE не активируют выполнение триггера
tbl_name -- название таблицы
trigger_stmt выражение, которое выполняется при активации триггера
Пример (Oracle):
/* Триггер на уровне таблицы */
CREATE OR REPLACE TRIGGER DistrictUpdatedTrigger
AFTER UPDATE ON district
BEGIN
insert into info values ('table "district" has changed');
END;
В этом случае для отличия табличных триггеров от строчных вводится дополнительные ключевые слова при описании строчных триггеров. В Oracle это словосочетание FOR EACH ROW.
Пример:
/* Триггер на уровне строки */
CREATE OR REPLACE TRIGGER DistrictUpdatedTrigger
AFTER UPDATE ON district FOR EACH ROW
BEGIN
insert into info values ('one string in table "district" has changed');
END;
1.6 Какие виды захвата объектов несколькими транзакциями существуют
Какие из них являются совместимыми. Транзакцией называется последовательность операций, производимых над базой данных и переводящих ее из одного непротиворечивого состояния в другое непротиворечивое состояние.
Транзакция рассматривается как некоторое неделимое действие над БД, осмысленное с точки зрения пользователя, то есть это логическая единица работы системы. Транзакция начинается всякий раз, когда происходит сеанс работы с базой данных.
Основными режимами синхронизационных захватов являются:
· совместный режим - S (Shared), означающий разделяемый захват объекта и требуемый для выполнения операции чтения объекта;
· монопольный режим - X (eXclusive), означающий монопольный захват объекта и требуемый для выполнения операций занесения, удаления и модификации.
Захваты объектов несколькими транзакциями по чтению совместимы, то есть нескольким транзакциям допускается читать один и тот же объект, захват объекта одной транзакцией по чтению не совместим с захватом другой транзакцией того же объекта по записи, и захваты одного объекта разными транзакциями по записи не совместимы. Правила совместимости захватов одного объекта разными транзакциями.
X |
S |
||
- |
да |
да |
|
X |
нет |
нет |
|
S |
нет |
да |
В первом столбце приведены возможные состояния объекта с точки зрения синхронизационных захватов. При этом "-" соответствует состоянию объекта, для которого не установлен никакой захват. Транзакция, запросившая синхронизационный захват объекта БД, уже захваченный другой транзакцией в несовместимом режиме, блокируется до тех пор, пока захват с этого объекта не будет снят.
2. Практическая часть
Вариант №5 "Библиотека"
База данных "Библиотека" должна хранить следующую информацию:
Фамилия, Имя, Отчество читателя.
Домашний адрес читателя.
Телефон читателя.
Дата рождения читателя.
Номер читательского билета.
Автор книги, которую взял читатель.
Название книги.
Дата выдачи книги.
Дата возврата книги.
Цена книги.
База данных должна содержать информацию о 7 читателях, 7 книгах. Предусмотреть, чтобы каждый читатель брал не менее 2 книг.
Проектируемая реляционная БД должна содержать структурированную информацию о заказах, продаваемых товарах и постовщиках. Проектируемая БД должна поддерживать выполнение, как минимум, следующих основных функций: ввод и обновление информации, просмотр и удаление.
При проектировании реляционной базы данных необходимо определить, какие данные будут храниться в базе, как эти данные будут размещаться по таблицам, как обеспечить нормализацию базы данных (минимизацию повторов, атомарность полей и др.) и ее эффективную работу в будущем.
Анализ предметной области показывает, что требуется разработать 5 таблиц - "ACCOUNTING_INFORMATION" (Учётная информация), "BOOKS" (Книги), "ADDRESSES" (Адреса посетителей), "PHONES" (Телефоны посетителей), "READER_LIST" (Информация о посетителях). Они должны содержать ряд обязательных полей.
Таблица "ACCOUNTING_INFORMATION" (Учётная информация).
Номер читательского билета |
Код книги |
Библиотекарь (Ф.И.О.) |
Дата выдачи книги |
Дата возврата книги |
|
7 |
2 |
Остапова Н. И. |
26.03.2021 |
||
4 |
1 |
Терещенко Г. Н. |
02.03.2021 |
||
1 |
3 |
Голубева Н. Д. |
22.02.2021 |
24.03.2021 |
|
7 |
11 |
Терещенко Г. Н. |
20.02.2021 |
26.03.2021 |
|
4 |
5 |
Дашкевич Е. С. |
05.02.2021 |
02.03.2021 |
|
2 |
13 |
Остапова Н. И. |
22.01.2021 |
20.02.2021 |
|
1 |
16 |
Голубева Н. Д. |
12.01.2021 |
22.02.2021 |
|
2 |
10 |
Терещенко Г. Н. |
18.12.2020 |
22.01.2021 |
|
5 |
8 |
Дашкевич Е. С. |
21.11.2020 |
19.12.2020 |
|
5 |
9 |
Остапова Н. И. |
14.10.2020 |
21.11.2020 |
|
8 |
4 |
Дашкевич Е. С. |
14.09.2020 |
11.10.2020 |
|
6 |
15 |
Голубева Н. Д. |
11.08.2020 |
10.09.2020 |
|
8 |
12 |
Дашкевич Е. С. |
11.08.2020 |
14.09.2020 |
|
3 |
6 |
Терещенко Г. Н. |
24.06.2020 |
26.07.2020 |
|
6 |
7 |
Остапова Н. И. |
10.06.2020 |
11.08.2020 |
|
3 |
14 |
Голубева Н. Д. |
21.05.2020 |
24.06.2020 |
Таблица "BOOKS" (Книги).
Код книги |
Автор книги |
Название книги |
Год издания |
Цена книги |
|
1 |
Лев Толстой |
Война и мир |
1869 |
45,00 ? |
|
2 |
Джордж Оруэлл |
1984 |
1949 |
55,00 ? |
|
3 |
Владимир Набоков |
Лолита |
1955 |
30,00 ? |
|
4 |
Джеймс Джойс |
Улисс |
1922 |
70,00 ? |
|
5 |
Уильям Фолкнер |
Шум и ярость |
1929 |
32,00 ? |
|
6 |
Ральф Эллисон |
Невидимка |
1952 |
43,00 ? |
|
7 |
Вирджиния Вульф |
К маяку |
1927 |
51,00 ? |
|
8 |
Джейн Остин |
Гордость и предубеждение |
1813 |
41,00 ? |
|
9 |
Кеннет Грэм |
Ветер в ивах |
1908 |
38,00 ? |
|
10 |
Элис Уокер |
Цвет пурпурный |
1982 |
49,00 ? |
|
11 |
Джон Кейнс |
Общая теория занятости, процента и денег |
1936 |
37,00 ? |
|
12 |
Ивлин Во |
Возвращение в Брайдсхед |
1945 |
39,00 ? |
|
13 |
Филип Пулман |
Тёмные начала |
1995 |
55,00 ? |
|
14 |
Филип Рот |
Случай портного |
1969 |
34,00 ? |
|
15 |
Эли Визель |
Ночь |
1958 |
52,00 ? |
|
16 |
Уильям Голдинг |
Повелитель мух |
1954 |
29,00 ? |
Таблица "ADDRESSES" (Адреса посетителей).
Номер читательского билета |
Город |
Улица (Проспект) |
Дом |
Квартира |
|
1 |
Витебск |
Фрунзе |
66 |
35 |
|
2 |
Витебск |
Ленина |
13 |
4 |
|
3 |
Витебск |
Московский |
45 |
87 |
|
4 |
Витебск |
Фрунзе |
10 |
21 |
|
5 |
Витебск |
Смоленская |
18 |
10 |
|
6 |
Витебск |
Правды |
35 |
12 |
|
7 |
Витебск |
Ленина |
78 |
37 |
|
8 |
Витебск |
Смоленская |
94 |
86 |
Таблица "PHONES" (Телефоны посетителей).
Номер читательского билета |
Телефон читателя |
Дополнительный телефон |
|
1 |
+375(25)6544231 |
||
2 |
+375(33)5430980 |
+375(21)8563370 |
|
3 |
+375(29)9054318 |
||
4 |
+375(44)3459870 |
+375(29)4782348 |
|
5 |
+375(29)9009781 |
+375(25)9823459 |
|
6 |
+375(25)3455760 |
+375(44)7394520 |
|
7 |
+375(21)9876510 |
||
8 |
+375(44)7639063 |
Таблица "READER_LIST"(Информация о посетителях).
Номер читательского билета |
Фамилия |
Имя |
Отчество |
Дата рождения |
Дата регистрации |
|
1 |
Григорьев |
Владимир |
Олегович |
23.01.1990 |
12.01.2021 |
|
2 |
Павлова |
Ирина |
Вячеславовна |
30.11.1999 |
18.12.2020 |
|
3 |
Вагелев |
Фёдор |
Григорьевич |
27.07.1988 |
21.05.2020 |
|
4 |
Нестеренко |
Нестеренко |
Александрович |
06.09.1991 |
05.02.2021 |
|
5 |
Ветрова |
Екатерина |
Петровна |
01.01.1989 |
14.10.2020 |
|
6 |
Цветова |
Алиса |
Павловна |
15.07.1997 |
10.06.2020 |
|
7 |
Артемьева |
Ольга |
Сергеевна |
23.01.1990 |
20.02.2021 |
|
8 |
Васильев |
Игорь |
Юрьевич |
07.04.1981 |
11.08.2020 |
В проектируемых таблицах требуется определить ключевые поля.
В таблице "READER_LIST"(Информация о посетителях) таким полем будет поле " LIBRARY_CARD_NUMBER" (Номер читательского билета).
В таблице "BOOKS" (Книги) - ключевое поле " ID_BOOKS"( Код книги). база данный транзакция таблица
Учитывая, что проектируемые таблицы должны быть связаны между собой первичными и вторичными ключами, определяем вторичные ключи. В таблицах "PHONES" (Телефоны посетителей), "ADDRESSES" (Адреса посетителей), "ACCOUNTING_INFORMATION" (Учётная информация) вторичным ключём является поле " LIBRARY_CARD_NUMBER" (Номер читательского билета). В таблице "ACCOUNTING_INFORMATION" (Учётная информация) присутствует второе поле с вторичным ключём " ID_BOOKS"( Код книги), для связи с таблицей "BOOKS" (Книги).
Приступаем к описанию таблиц базы данных, в бланке Конструктора Access. В указанной последовательности - задаём имена полей таблиц, выбраем из списка тип каждого поля, отмечаем ключевые поля, а также - где это требуется - изменяем параметры полей. В таблицах "PHONES" (Телефоны посетителей), "ADDRESSES" (Адреса посетителей), "ACCOUNTING_INFORMATION" (Учётная информация) в полях "LIBRARY_CARD_NUMBER" (Номер читательского билета) принимаем тип поля «Мастера подстановок» из таблицы "READER_LIST"(Информация о посетителях) поля LIBRARY_CARD_NUMBER" (Номер читательского билета). Данный тип позволяет выбирать данные из таблицы "READER_LIST"(Информация о посетителях) поля "LIBRARY_CARD_NUMBER", которое является ключевым.
Такойже тип данных применяием для поля " ID_BOOKS"( Код книги) в таблице "ACCOUNTING_INFORMATION" (Учётная информация). Данные в поле " ID_BOOKS"( Код книги) в таблице "ACCOUNTING_INFORMATION" (Учётная информация) поступают из таблицы "BOOKS" (Книги) поля "ID_BOOKS"( Код книги), которое является ключевым.
После выбора типа полей и изменения их параметров, открываем схему данных. В схеме данных следует изменить установившиеся связи между таблицами за счет подстановок на связи "один - ко многим". После сохранения схемы данных таблицы базы данных можно заполнять.
Описание таблицы "READER_LIST"(Информация о посетителях)
Описание таблицы "BOOKS" (Книги)
Описание таблицы "ACCOUNTING_INFORMATION" (Учётная информация)
Описание таблицы "ADDRESSES" (Адреса посетителей)
Описание таблицы ), "PHONES" (Телефоны посетителей)
Схема базы данных
Формирование запросов типа выборки
Запрос "Проживающие по заданному адресу".
Сформировать запрос на выборку, который выдает список проживающих на одной улице Ленина.
SQL код запроса.
SELECT ADDRESSES.*,
READER_LIST.SURNAME,
READER_LIST.NAME,
READER_LIST.PATRONYMIC,
READER_LIST.[DATE_OF_ BIRTH],
PHONES.TELEPHONE
FROM (READER_LIST INNER JOIN ADDRESSES ON READER_LIST.LIBRARY_CARD_NUMBER = ADDRESSES.LIBRARY_CARD_NUMBER)
INNER JOIN PHONES ON READER_LIST.LIBRARY_CARD_NUMBER = PHONES.LIBRARY_CARD_NUMBER
WHERE (((ADDRESSES.THE_STREET)='Ленина'));
Результат запроса
Запрос "Алфавитный список".
Сформировать запрос на выборку, который выдает список фамилий в буквенном диапазоне от "В" до "С ". Отсортировать список в алфавитном порядке.
SQL код запроса.
SELECT READER_LIST.SURNAME,
READER_LIST.NAME,
READER_LIST.PATRONYMIC,
READER_LIST.[DATE_OF_ BIRTH],
ADDRESSES.CITY,
ADDRESSES.THE_STREET,
ADDRESSES.HOME,
ADDRESSES.APARTMENT,
PHONES.TELEPHONE
FROM (READER_LIST INNER JOIN ADDRESSES ON READER_LIST.LIBRARY_CARD_NUMBER = ADDRESSES.LIBRARY_CARD_NUMBER)
INNER JOIN PHONES ON READER_LIST.LIBRARY_CARD_NUMBER = PHONES.LIBRARY_CARD_NUMBER
WHERE (((READER_LIST.SURNAME)>='В' And (READER_LIST.SURNAME)<='С'))
ORDER BY READER_LIST.SURNAME;
Результат запроса
Запрос "Список *** с условием".
Сформировать запрос на выборку, который выдает на экран список книг, цена которых не превышает 40.
SQL код запроса.
SELECT BOOKS.AUTHOR,
BOOKS.NAME_OF_THE_BOOK,
BOOKS.RECEIPT_DATE,
BOOKS.RECEIPT_DATE,
BOOKS.PRICE
FROM BOOKS
WHERE BOOKS.PRICE <= 40
ORDER BY BOOKS.PRICE DESC;
Результат запроса
Запрос с расчетами.
Сформировать запрос на выборку, который выдает на экран Фамилию, Имя, Отчество, Номер читательского билета, Название книги, Цена книги и Цена книги увеличенная на 30%. Формат вычисляемого поля должен быть денежный. Сортировать по полю "Номер читательского билета", без вывода на экран.
SQL код запроса.
SELECT READER_LIST.SURNAME,
READER_LIST.NAME,
READER_LIST.PATRONYMIC,
BOOKS.NAME_OF_THE_BOOK,
BOOKS.PRICE,
BOOKS.PRICE*1.3 AS [Цена книги+ 30%]
FROM READER_LIST INNER JOIN (BOOKS INNER JOIN ACCOUNTING_INFORMATION ON BOOKS.ID_BOOKS = ACCOUNTING_INFORMATION.ID_BOOKS) ON READER_LIST.LIBRARY_CARD_NUMBER = ACCOUNTING_INFORMATION.LIBRARY_CARD_NUMBER
ORDER BY ACCOUNTING_INFORMATION.LIBRARY_CARD_NUMBER;
Результат запроса
Запрос с групповой операцией.
Сформировать запрос на выборку, который позволяет определить среднюю цену книг.
SQL код запроса.
SELECT AVG ( PRICE) AS [Средняя цена книг]
FROM BOOKS;
Результат запроса
Список использовонных источников
1. Базы данных, А.Д. Хороменко, Санк-Петербург «КОРОНА принт» 2000г.
2. Базы данных: учебный курс, С.В. Глушаков Д.В. Ломотько, Харьков «Фолио» Ростов-на-Дону «Феникс» Киев «Абрис» 2000г.
3. Базы данных: основы, проектирование, использование, Мария Малыхина, Санкт-Петербург «БХВ-Петербург» 2004г.
4. Технология организации, хранения и обработки данных, Е.А. Левчук, Минск «Вышэйшая школа» 2005г.
5. Visual Foxpro 8, самоучитель, Людмила Омельченко, Санкт-Петербург «БХВ-Петербург» 2003г.
6. Базы данных, А.И. Змитрович, Мн.: Издательство БГУ, 1991г.
7. Программирование в среде СУБД FoxPro 2.0, А.А. Попов, М.: «Радио и связь», 1993г.
8. Создание приложений для FoxPro 2.5/2.6 в DOS и Windows, А.А. Попов, М.: «Март», 1996г.
Размещено на Allbest.ru
Подобные документы
Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.
контрольная работа [723,9 K], добавлен 25.11.2012Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.
курсовая работа [3,1 M], добавлен 17.12.2014Создание моделей данных, основных таблиц с помощью конструктора таблиц, связей между таблицами, форм для заполнения таблиц, запросов на выборку данных, отчетов для вывода на печать и начальной кнопочной формы. Основные объекты Microsoft Access.
контрольная работа [4,5 M], добавлен 18.03.2012Концептуальное проектирование базы данных: разработка схемы и структуры таблиц, описание атрибутов. Реализация базы данных в среде СУБД MS SQL Server 2000. Основные принципы создания таблиц. Доступ и обработка данных с помощью утилиты Enterprise Manager.
курсовая работа [3,8 M], добавлен 22.01.2013Характеристика Microsoft Access. Создание структуры базы данных. Определение основных тем таблиц базы данных и информации, которую будут содержать поля таблиц. Создание таблиц, запросов, форм и отчетов. Страницы доступа к данным. Макросы и модули.
курсовая работа [1,1 M], добавлен 09.12.2012Создание таблиц базы данных в режиме конструктора. Схема связей между таблицами и содержание таблиц. Установление связи с поддержанием целостности. Структуры двух запросов (в режиме конструктора) и описание процесса их создания. Результаты вывода отчетов.
курсовая работа [3,0 M], добавлен 28.06.2015Основные черты концепции базы данных, общие сведения об архитектуре. Виды аппаратных сбоев. Основные подходы к программному обеспечению. Руководство разработчиков базы данных "Прокат CD-DVD дисков". Создание таблиц и связей, запросов, форм, отчетов.
курсовая работа [821,3 K], добавлен 30.09.2012Компоненты реляционной базы данных Microsoft Access. Создание структуры таблиц и определение связей между ними. Проектирование форм для сводных таблиц и запросов с помощью конструктора окон. Разработка и создание автоотчетов и запросов на выборку данных.
реферат [3,3 M], добавлен 29.01.2011Разработка базы данных "Доставка товара" в среде MS Access, ее структуры, объектов (таблиц, запросов, форм, отчетов, макросов). Анализ предметной области базы данных, описание ее схемы, полей таблиц, разработанных объектов. Требования к работе приложения.
контрольная работа [2,6 M], добавлен 07.08.2013Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.
курсовая работа [838,9 K], добавлен 25.11.2010