Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1410


3.1. создание базы данных

 

3.1.1. О БЩИЙ  ФОРМАТ  ОПЕРАТОРА  CREATE  DATABASE

 

В стандарте SQL1 задается спецификация оператора описания схемы базы данных, но не указывается способ создания собственно базы данных, поэтому в различных СУБД используются неодинаковые подходы к этому вопросу.

Для создания базы данных используется оператор SQL, имеющий следую-

щий формат:

 

CREATE {DATABASE | SHEMA } «<имя_файла>»

[USER «имя пользователя» [PASSWORD «пароль»]] [PAGE_SIZE [=] целое]

[LENGTH [=] целое [PAGE[S]]]

[DEFAULT CHARACTER SET набор_символов]

 

Здесь:

– «<имя_файла>» – указывает спецификацию файла, в котором будет хра-

ниться создаваемая база данных;

– USER «имя пользователя» – имя пользователя, которое вместе с паролем будет проверяться при соединении пользователя с сервером;

– PASSWORD «пароль» – пароль, который вместе с именем пользователя бу-

дет проверяться при соединении пользователя с сервером;

– PAGE_SIZE [=] целое – размер страницы базы данных в байтах. Допусти-

мые размеры: 1024 (по умолчанию), 2048, 4096 или 8192;

– LENGTH [=] целое [PAGE[S]] – длина файла в страницах. По умолча-

нию 75 страниц. Минимум 50 страниц. Максимум ограничен имеющимся диско-

вым пространством;

– DEFAULT CHARACTER SET набор_символов – определяет набор символов,

применимый в базе данных. Если не указан, по умолчанию берется NONE;

Почти все   параметры, кроме имени являются необязательными. Пример оператора:

 

CREATE DATABASE «D:BDLibrary»

 

3.1.2. О ПРЕДЕЛЕНИЕ  ПА РОЛЯ

 

Пароль при создании базы данных указывается для того, чтобы сервер смог идентифицировать владельца БД по паре значений «имя пользователя = па‐ роль»:

 

CREATE DATABASE «D:BDLibrary» USER «xxx» PASSWORD «xxx»

 

Это имя и пароль принадлежат пользователю, создающему базу данных, и служат для его идентификации: после создания базы данных ни один другой пользователь, кроме системного администратора, не имеет прав доступа к базе. Впоследствии системный администратор может предоставить другим пользова- телям те или иные права доступа к базе данных.

 

3.1.3. У КАЗАНИЕ  РАЗМЕРА  СТРА НИЦЫ  БД

 

Размер страницы указывается в байтах и может быть 1024 (по умолчанию),

2048, 4096 или 8192 байт, например:

 

CREATE DATABASE «D:BDLibrary» PAGE_SIZE 4096;

 

Увеличение размера страницы может привести к ускорению работы с базой данных, поскольку:

– уменьшается глубина индексов (число шагов, за которое при помощи ин-

декса будут найдены требуемые записи);

– уменьшается количество операций чтения при считывании длинных запи- сей, поскольку за одну операцию чтения всегда считывается одна страница, за- пись, расположенная на одной странице, будет считана за один раз; при малом объеме страницы запись располагается на нескольких страницах и соответственно считывается за несколько операций чтения.

Увеличение размера страницы не оправдано в том случае, если запросы на

чтение к базе данных возвращают небольшое количество записей, не занимаю-

щих всю страницу. Поскольку за операцию чтения считывается одна страница базы данных, будет считываться много лишних записей.

 

3.1.4. У КАЗАНИЕ  НАЦ И ОНА ЛЬН О Й  КОД И РОВКИ  СИ МВ О Л ОВ

 

Для символьных столбцов в составе таблиц базы данных используются различные национальные кодировки. При создании баз данных национальный набор символов устанавливается предложением

 

DEFAULT CHARACTER SET набор_символов

 

Например:

 

CREATE DATABASE «D:BDLibrary» DEFAULT CHARACTER SET WIN1251;

 

В дальнейшем всем создаваемым символьным столбцам таблиц баз данных (типы CHAR, VARCHAR) ставится в соответствие указанный набор символов, на- пример, объявление в одной из таблиц баз данных Library столбца

 

FAMILIA VARCHAR(25);

 

интерпретируется как объявление

 

FAMILIA VARCHAR(25) CHARACTER SET WIN1251;

 

Изменить кодировку, принятую для базы данных по умолчанию, можно при определении конкретных доменов и столбцов.

 

3.1.5.  Т ИПЫ  ДА ННЫХ

 

Типы данных различных СУБД различаются. В таблице 3.1 показаны ос- новные типы данных, включенные в стандартную дистрибуцию СУБД PostgreSQL, обладающей обширным набором собственных типов данных, дос- тупных пользователям.

 

Таблица 3.1

 

Типы данных в СУБД PostgreSQL

 

Имена типов данных

Псевдонимы

Описание

bigint

int8

восьмибайтное целое число со знаком

bigserial

serial8

автоинкрементное    восьмибайтное            целое число

bit

 

строка битов фиксированной длины

bit varying(n)

varbit(n)

строка битов переменной длины

boolean

bool

логическая булева переменная (true/false)

box

 

прямоугольное поле в двухмерной плоскости

bytea

 

двоичные данные

character(n)

char(n)

строка символов фиксированной длины

Окончание табл. 3.1

Имена типов данных

Псевдонимы

Описание

character varying(n)

varchar(n)

строка символов переменной длины

cidr

 

сетевой IP-адрес

circle

 

круг в двухмерной плоскости

date

 

календарная дата (год, месяц, день)

double precision

float8

число с плавающей запятой удвоенной точ-

ности

inet

 

адрес IP-хоста

integer

int, int4

четырехбайтное целое число со знаком

interval(p)

 

полезное время общего использования

line

 

прямая в двухмерной плоскости

lseg

 

отрезок в двухмерной плоскости

macaddr

 

адрес МАС

money

 

денежная единица США

numeric [(p, s)]

decimal[(p, s)]

число с выбираемой точностью

oid

 

объектный идентификатор

path

 

открытый  и  закрытый геометрический путь в двухмерной плоскости

point

 

геометрическая точка в двухмерной плоско-

сти

polygon

 

закрытый геометрический путь в двухмерной плоскости

real

float4

число с плавающей запятой обычной точно-

сти

smallint

int2

двухбайтное целое число со знаком

serial

serial4

автоинкрементное    четырехбайтное            целое число

text

 

строка символов переменной длины

time [(p)] [without time zone]

time

время дня

time [(p)] with time zone

timetz

время дня, включая временной пояс

timestamp  [(p)]  without  time zone

timestamp

дата и время

timestamp [(p)][with time zone]

timestamptz

дата и время, включая временной пояс

 

Пользователи могут добавлять в него новые типы с помощью команды

CREATE TYPE.

Большинство альтернативных имен, перечисленных в столбце «Псевдонимы»,

исторически используется в других СУБД.

Каждый тип данных имеет внешнее представление, определяемое его входными и выходными функциями. Многие встроенные типы имеют внешние форматы, однако некоторые существуют только в СУБД PostgreSQL (открытые

и закрытые пути), а другие имеют несколько возможных форматов (типы даты и времени). Большинство входных и выходных функций, передающихся в базо- вые типы (т. е. целые числа и числа с плавающей точкой), производят проверку

ошибок, но некоторые функции необратимы, то есть результат выходной функ-

ции при сравнении с входной теряет точность.