Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
Позднее мы коснемся типов данных, поддерживаемых MySQL и mSQL. В каждой из них 
свои правила относительно того, какие типы данных можно индексировать. Ни в 
одной из них, например, нельзя индексировать поля типа TEXT. Поэтому 
недопустимо иметь колонку первичного ключа типа TEXT.
Чаще всего отношение имеет тип «1-к-М». Ему соответствует первичный ключ со 
стороны «1», помещенный в таблицу на стороне «многие». В нашем примере это 
означает, что нужно сделать следующее:
* Поместить колонку RecordLabelId в таблицу CD.
* Поместить колонку CDId в таблицу Song.
* Поместить колонку Artistic! в таблицу Song. Полученная схема показана в 
таблице 2-3.
Таблица 2-3. Физическая модель данных для базы данных CD
ТаблицаКолонкаТип данныхПримечанияCDCdldINTprimary keyCDTitleTEXT(50)
RecordLabelldINTforeign keyArtistArtistldINTprimary keyArtistNameTEXT(50)Song
SongldINTprimary keySongNameTEXT(50)CdldINTforeign keyArtistldINTforeign key
RecordLabelRecordLabelldINTprimary keyRecordLabelNameTEXT(50)В нашей модели нет 
связей типа «один-к-одному». Если бы они были, то нужно было бы взять одну из 
таблиц и ввести в нее колонку внешнего ключа, соответствующую первичному ключу 
другой таблицы. Теоретически не важно, которую из таблиц вы выберете, но 
практические соображения могут определять, какую из колонок лучше сделать 
внешним ключом.
Теперь у нас есть полная физическая схема базы данных. Осталось перевести эту 
схему на SQL. Для каждой таблицы в схеме вы пишете одну команду CREATE TABLE. 
Обычно для поддержки уникальности создается уникальный индекс по первичным 
ключам.
В некотором смысле мы сейчас забегаем вперед. Вы, возможно, не знакомы с SQL, а 
в задачи данной главы не входит знакомство с версиями SQL, поддерживаемыми 
MySQL и mSQL. Все же, вот два простых сценария для создания базы данных CD. 
Первый сценарий, пример 2-1, составлен для MySQL, пример 2-2 — для mSQL.
Пример 2-1. Сценарий создания базы данных CD в MySQL
CREATE TABLE CD (CDID INT NOT NULL,
RECORD_LABEL_I INT, CD_TITLE TEXT, PRIMARY KEY (CD_ID))
CREATE TABLE Artist (ARTIST_ID INT NOT NULL, ARTIST_NAMETEXT,
PRIMARY KEY (ARTIST_ID)) CREATE TABLE Song (SONG_ID INT NOT NULL, CD_ID INT, 
SONG_NAME TEXT, PRIMARY KEY (SONG_ID))
CREATE TABLE RecorLabel(RECORD LABEL_ID INT NOT NULL, RECORD_LABEL_NAME TEXT, 
PRIMARY KEY(RECORD_LABEL_ID))
Пример 2-2. Сценарий создания базы данных CD в mSQL
CREATE TABLE CD (CD_ID INT NOT NULL,
RECORD_LABEL_IDINT, CD_TITLE TEXT(50))
CREATE UNIQUE INDEX CD_IDX ON 0(DCD.ID)
CREATE TABLE ArtistARTIST_ID INT NO NULL,
ARTIST_NAMETEXT(50))
CREATE UNIQUE INDEX Artist_IDX ON Artist (ARTIST_ID) 
CREATE TABLE Song (SONG_ID INT NOT NULL, CD_ID INT,
SONG_NAME TEXT(50))
CREATE UNIQUE INDEX Song_IDX ON Song (SONG_ID)
CREATE TABLE RecordLabel (RECORD_LABEL_IDINT NOT NULL,
RECORD_LABEL_NAMEEXT(50)) 
CREATE UNIQUE INDEX RecordLabel_IDX
ON RecordLabel(RECORD_LABEL_ID)
Модели данных разрабатываются так, чтобы не зависеть от базы данных. Поэтому вы 
можете взять технику и модель данных, созданную в этой главе, и применить ее не 
только к MySQL и mSQL, но и к Oracle, Sybase, Ingres и любой другой РСУБД. В 
следующих главах мы подробно обсудим, как соединить ваши новые знания о 
проектировании баз данных с MySQL и mSQL.
Глава №3.
Установка
Подобно большинству сервисов, СУБД MySQL и mSQL работают как фоновые процессы, 
в Unix-системах называемые также демонами. В данной главе обсуждается процесс 
их распаковки и установки.
MySQL
Прежде чем начать установку MySQL, нужно ответить на пару вопросов.
1. Собираетесь ли вы устанавливать MySQL как пользователь root или какой-либо 
другой пользователь?
MySQL не требует для своей работы прав суперпользователя, но при установке с 
правами root вы даете каждому пользователю вашей системы доступ к одному 
экземпляру программы. Если у вас нет прав суперпользователя, установку придется 
произвести в свой исходный каталог. Однако, даже если вы установите MySQL как 
суперпользователь, лучше запускать под другим логином. Благодаря этому данные 
вашей базы данных можно защитить от других пользователей, установив для 
конкретных пользователей MySQL права только чтения файлов данных. Кроме того, 
при компрометации защиты базы данных нарушитель получает доступ только к 
учетной записи отдельного пользователя MySQL, не имеющей привилегий за 
пределами базы данных.
2. Будете ли вы устанавливать MySQL из исходного кода или откомпилированных 
модулей?
Имеется много откомпилированных двоичных пакетов MySQL. Это экономит время, но 
уменьшает возможности настройки при установке. Для установки из исходного кода 
вам потребуется компилятор С и другие инструменты разработчика. Если они у вас 
 
<<-[Весь Текст]
Страница: из 157
 <<-