Тесты
1. Нужно ли использовать уникальный индекс в случае маленькой таблицы?
2. Что происходит, когда оптимизатор принимает решение не использовать индекс таблицы при выполнении запроса?
3. Где в выражении ключевого слова WHERE следует разместить наиболее ограничительные условия - до или после условий связывания таблиц?
Упражнения
Перепишите приведенные ниже операторы SQL в виде, который позволит увеличить скорость их выполнения по сравнению с исходным видом. Используйте таблицы EMPLOYEE_TBL И EMPLOYEE_PAY_TBL следующей Структуры.
EMPLOYEE_TBL _____
EMP_ID VARCHAR2(9) NOT NULL Ключевое поле
LAST_NAME VARCHAR2U5) NOT NULL
FIRST_NAME VARCHAR2(15) NOT NULL
MIDDLE_NAME VARCHAR2(15)
ADDRESS VARCHAR2(30) NOT NULL
CITY VARCHAR2(15) NOT NULL
STATE CHAR (2) NOT NULL
ZIP NUMBER(5) NOT NULL
PHONE CHAR(10)
PAGER CHAR(10)
CONSTRAINT EMP_PK PRIMARY KEY (EMP_ID)
EMPLOYEE__PAY_ TBL
EMP_ID VARCHAR2(9) NOT NULL Ключевое поле
POSITION VARCHAR2(15) NOT NULL
DATE_HIRE DATE
PAY_RATE NUMBER(4,2) NOT NULL
DATE_LAST-RAISE DATE
CONSTRAINT EMP_FK FOREIGN KEY (EMP_ID) REFERENCED
EMPLOYEE_TBL (EMP_ID)
a.SELECT EMP_ID, LAST_NAME, FIRST_NAME, PHONE
FROM EMPLOYEE_TBL
WHERE SUBSTR(PHONE,1,3) = '317' OR
SUBSTR(PHONE,1,3) = '812' OR
SUBSTR(PHONE,1,3) = '765';
б.SELECT LAST_NAME, FIRST_NAME
FROM EMPLOYEE_TBL
WHERE LAST_NAME LIKE '%ALL%';
в.SELECT E.EMP_ID, E.LAST_NAME, E.FIRST_NAME, EP.SALARY
FROM EMPLOYEE_TBL E,
EMPLOYEE_PAY_TBL EP
WHERE LAST_NAME LIKE 'S%'
AND E.EMP_ID EP.EMP_ID;
18-й час Управление доступом к базе данных
В ходе этого урока мы с вами поговорим об управлении доступом к базе данных, что в реляционных базах данных является одной из важнейших задач. Вы узнаете о том, как в рамках SQL создаются учетные записи пользователей, о безопасности пользователей, о пользовательских профилях и атрибутах, а также доступных пользователю соответствующих средствах.
Основными на этом уроке будут следующие темы.
• Типы пользователей
• Управление пользователями
• Место пользователя в базе данных
• Имена пользователей и имена схем
• Сеансы доступа пользователей к базе данных
• Изменение атрибутов пользователя
• Пользовательские профили
• Удаление учетной записи пользователя из базы данных
• Средства, доступные пользователю
Стандарт SQL предлагает идентифицировать пользователей базы данных с помощью идентификаторов разрешения доступа (Authorization Identifier - authio). В большинстве реализаций языка идентификаторы разрешения доступа называются просто пользователями. В этой книге для обозначения идентификаторов разрешения доступа мы применяем слова "пользователь", "пользователь базы данных", "имя пользователя", а также "учетная запись пользователя". В соответствии со стандартом SQL, идентификатор разрешения доступа является именем, по которому система распознает пользователя базы данных.
Пользователь превыше всего
Пользователь превыше всего с точки зрения дизайна, структуры, реализации и управления любой базы данных. Потребности пользователя обязательно учитываются при разработке базы данных, и конечной целью разработки всегда должно быть создание такой базы данных, с которой удобно работать пользователю.
Что касается пользователей, то если бы их не было вообще, то с базой данных никогда не происходило бы ничего плохого. И хотя это утверждение похоже на правду, базы данных все равно создаются для того, чтобы с ними работали пользователи и работали каждый день.
Чаще всего контроль за работой пользователей относится к компетенции администратора базы данных, но иногда в этом процессе участвуют и обычные пользователи. Управление пользователями играет важнейшую роль в обеспечении надежной работы базы данных и осуществляется исключительно средствами SQL, хотя следует отметить, что последние зависят от конкретной реализации языка.
Типы пользователей
Различают следующие типы пользователей базы данных.
• Клерки, осуществляющие ввод данных
• Программисты
• Системные инженеры
• Администраторы баз данных
• Системные аналитики
• Разработчики
• Специалисты по тестированию
• Управляющий персонал
• Конечные пользователи
Пользователи каждого из указанных типов решают при работе с базой данных свои задачи (и при этом имеют свои проблемы), и поэтому занимают разные места в иерархии базы данных, имея различные уровни доступа к ней.
Кто управляет пользователями?
За управление пользователями вообшето отвечает управленческое звено компании, но управление пользователями в рамках базы данных относится к компетенции администратора базы данных и его подчиненных.
Читать дальше