входное тестирование. Входное тестирование - Ответы. 1. Что такое нормальная форма Нормальная форма
Скачать 34.73 Kb.
|
Страница из 1. Что такое нормальная форма? Нормальная форма — свойство отношений данных в реляционной модели, характеризующее их с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение. 2. Какова цель нормализации реляционной БД? Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью увеличение производительности работы или же уменьшение физического объёма базы данных. 3. Приведите все нормальные формы, которые вы знаете. 6 НФ + 2 дополнительных, основных 3: 1НФ, если все его атрибуты являются простыми, все используемые домены должны содержать только скалярные значения. Не должно быть повторений строк в таблице.
2НФ, если оно находится в 1НФ и каждый не ключевой атрибут неприводимо (функционально полно) зависит от Первичного Ключа(ПК)
Первичный ключ здесь – Модель-Фирма, но скидка зависит только от фирмы 3НФ, когда находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа (каждый неключевой атрибут полностью функционально зависит только от ключей).
Ключ здесь – Модель, но телефон зависит от фирмы Нормальная форма Бойса — Кодда (иначе — в усиленной третьей нормальной форме) тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ. Четвёртая нормальная форма (4NF) если она находится в нормальной форме Бойса — Кодда и не содержит нетривиальных многозначных зависимостей. Пятая нормальная форма (5NF) (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения. Доменно-ключевая нормальная форма, когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную отношения. Шестая нормальная форма (6NF), когда она удовлетворяет всем нетривиальным зависимостям соединения. Из определения следует, что переменная находится в 6НФ тогда и только тогда, когда она неприводима, то есть не может быть подвергнута дальнейшей декомпозиции без потерь. Каждая переменная отношения, которая находится в 6НФ, также находится и в 5НФ. 4. Перечислите СУБД, которые вы знаете, и их основные характеристики. 5 Перечислите группы операторов языка SQL. Укажите, какие операторы входят в каждую групп и их функции. операторы определения данных (Data Definition Language, DDL): CREATE создаёт объект БД (саму базу, таблицу, представление, пользователя и т. д.), ALTER изменяет объект, DROP удаляет объект; операторы манипуляции данными (Data Manipulation Language, DML): SELECT выбирает данные, удовлетворяющие заданным условиям, INSERT добавляет новые данные, UPDATE изменяет существующие данные, DELETE удаляет данные; операторы определения доступа к данным (Data Control Language, DCL): GRANT предоставляет пользователю (группе) разрешения на определённые операции с объектом, REVOKE отзывает ранее выданные разрешения, DENY задаёт запрет, имеющий приоритет над разрешением; операторы управления транзакциями (Transaction Control Language, TCL): COMMIT применяет транзакцию, ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции, SAVEPOINT делит транзакцию на более мелкие участки. 6. Что такое первичный ключ (primary key)? Укажите наиболее точное определение. Одна колонка, которая однозначно идентифицирует запись в таблице и может быть описана как автоинкремент Колонка, в которую можно писать только уникальные значения Это синоним внешнего ключа (FOREIGN KEY) Первая колонка в таблице Одна или несколько колонок, которые однозначно идентифицируют запись в таблице 7. Синонимом какого понятия является понятие 'кортеж'? Поле Запись Первичный ключ Внешний ключ 8. Может ли первичный(primary) ключ быть одновременно и внешним(foreign) ключом? Да Нет 9. С помощью какого запроса можно удалить все записи из таблицы A? delete A delete from A delete table A Ни один из вышеперечисленных 10. Какие запросы позволят добавить запись в эту таблицу? CREATE TABLE STUDENTS ( ID INTEGER PRIMARY KEY, FIRST_NAME VARCHAR(50) NOT NULL, LAST_NAME VARCHAR(50) NOT NULL, ADDRESS VARCHAR(100)) INSERT INTO students VALUES (3, 'Name', 'Surname', NULL); INSERT INTO students VALUES (4, NULL, 'Surname', NULL); INSERT INTO students(id, first_name) VALUES (2, 'Name'); INSERT INTO students(id, first_name, last_name) VALUES (1, 'Name', 'Surname'); 11. При объединении (UNION) нескольких выборок должны ли они содержать одинаковое количество, порядок и тип полей? Да Нет 12. Ниже представлены 2 столбца таблицы Elements +--------+------+ | Name | YEAR | +--------+------+ | Au | NULL | | Be | 1798 | | Fr | 1939 | | Uus | 2010 | +--------+------+ Сколько строк вернет запрос: SELECT * FROM Elements WHERE YEAR NOT IN (SELECT YEAR FROM Elements) Запрос содержит ошибку и не выполнится 0 1 3 4 13. Пусть дана таблица Income, два столбца которой имеют значения: +--------+------+ | Profit | Loss | +--------+------+ | 1000 | 100 | | 2000 | NULL | | 3000 | 1000 | | NULL | 500 | | NULL | NULL | +--------+------+ Какое значение вернет запрос: SELECT COUNT(Profit-Loss) FROM Income; 1 2 3 4 5 Запрос содержит синтаксическую ошибку и не выполнится Запрос не выполнится, поскольку к таким значениям столбцов он не применим 14. Результат объединения запросов выведет все значения из таблицы tab? SELECT * FROM tab WHERE b='a' UNION SELECT * FROM tab WHERE b<>'a' Да Нет 15. Какие из перечисленных запросов отработают корректно: CREATE TABLE simple_tab (col1 VARCHAR(10) PRIMARY KEY); INSERT INTO simple_tab VALUES ( 'aa' ); INSERT INTO simple_tab ( col1 ) VALUES ( 'bb' ); INSERT INTO simple_tab VALUES ( NULL ); 16. С помощью какого update-запроса можно обновить значения более чем одной колонки? Одним запросом можно обновить не более одной колонки UPDATE TABLE_NAME SET col1_name = 'col1val' SET col2_name = 'col2val'; UPDATE TABLE_NAME SET col1_name = 'col1val' AND SET col2_name = 'col2val'; UPDATE TABLE_NAME SET col1_name = 'col1val', col2_name = 'col2val'; 17. Создана таблица CREATE TABLE t (t1 VARCHAR(20), t2 CHAR(20)) В неё вставлена строка INSERT INTO t VALUES('test', 'test') Что выдаст следующий запрос? SELECT LENGTH(t1) t1, LENGTH(t2) t2 FROM t
18. Дана таблица Persons: +-----+--------------+-------+ | Id | FirstName | Age | +------+-------------+-------+ | 1 | Kate | 100 | | 2 | Misha | 0 | | 3 | Nick | NULL | | 4 | Larisa | 200 | +------+-------------+-------+ Каков будет результат выполнения следующего запроса: SELECT AVG (Age) FROM Persons Запрос не выполнится (завершится ошибкой), поскольку присутствует NULL 150 UNKNOWN, поскольку присутствует NULL 75 100 19. Дана таблица, созданная с помощью SQL-выражения: CREATE TABLE people ( id INT PRIMARY KEY, name VARCHAR(45) ) Можно ли гарантированно удалить все записи из этой таблицы, выполнив следующий запрос: DELETE FROM people WHERE id>=0 Да Нет 20. Укажите все запросы, которые эквивалентны следующему: SELECT * FROM numbers WHERE textvalue = 'one' SELECT * FROM numbers WHERE textvalue LIKE '%one%' SELECT * FROM numbers WHERE textvalue LIKE '%one' SELECT * FROM numbers WHERE textvalue LIKE 'one' SELECT * FROM numbers WHERE textvalue LIKE one SELECT * FROM numbers WHERE textvalue LIKE 'one%' 21. Когда оператор AND И OR совместно используются после WHERE ... OR имеет больший приоритет, нежели AND; нужно обязательно использовать скобки для каждого условия; СУБД возвращает ошибку; AND имеет больший приоритет, нежели OR; 22. Есть таблица People со следующими записями: ID FirstName LastName Sex --------------------------------------------------------- 1 John Reyna M 2 Jake Wild M 3 Cathy Armstrong F 4 Jake Earl M Сколько записей возвратит такой запрос: SELECT ID, Sex FROM PEOPLE WHERE (FirstName='John' AND FirstName='Jake') OR LastName='Wild' 3 Запрос не выполнится, так как содержит ошибку 4 2 0 1 23. Какие из перечисленных выражений истинны? NULL = NULL NULL != NULL NULL > NULL ничего из вышеперечисленного 24. Какие из определений таблицы гарантируют, что в колонку с1 нельзя поместить значения NULL (укажите все подходящие варианты)? CREATE TABLE z1 (c1 INT DEFAULT 0) CREATE TABLE z1 (c1 INT PRIMARY KEY) CREATE TABLE z1 (c1 INT NOT NULL) CREATE TABLE z1 (c1 INT) 25. Дана таблица cars: color ----- blue red NULL blue Каким будет результат следующего запроса: SELECT COUNT(DISTINCT color) FROM cars
26. Какая ошибка в этом запросе? UPDATE books SET sales_1999 > (SELECT SUM(qty * price) FROM sales WHERE sales.book_id = books.id AND sales.date BETWEEN '01/01/1999' AND '12/31/1999') Следует использовать знак (=) для подзапроса. Вы не можете использовать подзапрос для SET внутри оператора UPDATE. Вы не можете использовать арифметические операторы для функции SUM() (например SUM(qty * price)). Ключевое слово BETWEEN нельзя использовать для символов или дат. 27. Какое ключевое слово используется для фильтрации значений, полученных в результате применения агрегирующих функций в результатах запроса с использованием GROUP BY? WHERE HAVING И WHERE, и HAVING Ни одно из перечисленных 28. Ключевое слово LIKE может быть использовано только для таких типов данных: (Выберите все подходящие варианты) NUMERIC INTEGER CHAR REAL VARCHAR 29. Верно ли логически составлен следующий запрос: SELECT EMP_NAME, SUM(SAL) FROM EMPLOYEE; Да Нет 30. Предположим, что создана таблица persons с колонками id, name, age. Какой запрос найдет средний возраст всех людей с возрастом не менее 18-ти лет? SELECT avg(age) FROM persons HAVING age >= 18 SELECT avg(age) FROM persons HAVING avg(age) >= 18 Это может быть сделано только с использованием подзапросов SELECT avg(age) FROM persons WHERE age >= 18 GROUP BY name SELECT avg(age) FROM persons HAVING age >= 18 GROUP BY name SELECT avg(age) FROM persons WHERE age >= 18 Доп.вопросы: Сущность – это некоторая абстракция реально существующего объекта (класса объектов), процесса или явления, о котором необходимо хранить информацию в БД. Атрибут – это поименованная характеристика сущности, которая принимает значения из некоторого множества значений. В модели атрибут выступает в качестве средства, с помощью которого моделируются свойства сущностей. Связи выступают в модели в качестве средства, с помощью которого представляются отношения между сущностями, имеющими место в предметной области. При анализе связей между сущностями могут встречаться бинарные (между двумя сущностями), тернарные (между тремя сущностями) и, в общем случае n-арные связи. Потенциальный ключ – подмножество атрибутов, обладающее свойствами уникальности и минимальности. В отношении может существовать несколько потенциальных ключей. Первичный ключ – это любой из потенциальных ключей, выбираемый для использования в связях между отношениями. Если выбран первичный ключ – все остальные потенциальные ключи называют альтернативными ключами. Внешний ключ – столбец или комбинация столбцов, значения которых необходимы для сопоставления с первичным ключом в другой таблице. Используется для объединения родственных таблиц. |