Asp.net для начинающих: Работа с базой данных

Programming
Предыдущий Следующий

Для работы с базой данных MSSQL нужно использовать "SQL Server Management Studio". Если Вы правильно установили Microsoft SQL Server 2008, то у Вас должна быть эта программа, а так же логин/пароль к базе

При запуске программы Вы уведите окно:

date base

С помощью этого окна мы подключаемся к базе данных. Какие поля мы в нем заполняем:

-Server type - тип сервера к которому подключаемся. Нужно выбрать Database Engine

-Server name - имя базы  данных, а точнее это адрес, где находится ваша база. В этом поле можно писать: "Имя компа, где находится база", "(local) если база находиться на том же компе, где и Management Studio", "IP address , если база находится на другом компьютере (если нужно указать порт, то пишем так 199.227.99.999, 14330)".  В нашем случаи нужно оставить имя компьютера

-Authentication - указываем пользователя для входа. Если выбрано "Windows Authentication", то мы логинимся тем же пользователем с помощью которого вошли в систему Windows. Если выбрать "SQL Server Authentication", то мы должны указать логин пароль sql пользователя (логин: sa, пароль указывали при установки БД).

Жмем "Connect".

Теперь нам нужно создать базу данных. Для этого жмем мышкой на папку "Databases" и выбираем пункт меню "New Database..."

new date base

В открывшемся окне пишем название базы (Database name) и так же можем указать путь (Path), где будет хранится база (путь нужно изменить если база будет занимать много места на диске С:). База данных состоит из двух файлов: *.mdf - файл с данными и *.ldf - файл, где хранится история изменения базы.

 Теперь, если развернуть созданную базу, то мы увидим папку "Tables"  жмем мышкой на ней и создаем таблицу ("New Tables...").  Таблица будет иметь информацию о пользователях.

Сначала создаем поле PersonID его тип будет uniqueidentifier (это уникальный набор цифр и букв, который не разу в мире не повторится). Это поле у нас будет служить primary key (ID - пользователя). Жмем на крае поля правой кнопкой мышки и выбираем "Set Primary key". 

primary key

Так же создаем поля FirstName и LastName. Они будут иметь тип nvarchar(MAX) (стоковые поля) и не будут пустыми (уберите галочку Allow Nulls). После нажатия на кнопку сохранить, нужно будет ввести название таблицы "Persons"

Теперь создаем таблицу Blogs. Так же выбираем меню "New Tables...". В таблице создаем поле BlogID тип у него будет int и так же делаем его "Set Primary key". Теперь открываем Properties таблицы и заполняем поля "(Name)" пишем "Blogs" и в параметре Indentity Column выбираем поле таблицы BlogID. Этим действием мы сказали, что поле BlogID будет автоинкриментным. Т.е. при создании новой записи в таблице это поле будет заполняться автоматически (на единицу больше от предыдущей записи). Теперь создаем еще поля в таблице: Body (тип nvarchar(MAX)); Title nvarchar(MAX); Date datetime; PersonID uniqueidentifier; CategoryID int. Все эти поля не будут пустыми

table

Жмем сохранить.

Теперь для ускорения поиска создаем индексы для этой таблицы. Для этого жмем на кнопку в меню "Manadge Index and Keys"

table index

Индексы нужно создавать на поля по которым будет идти поиск или сортировка. Создаем два индекса: один по категории и дате, и второй по PresonID.

 Теперь перейдем к созданию связей между таблицами. Для этого мне удобнее всего пользоваться "Database Diagrams" (это папочка, которая находится выше папки Tables). Создаем новую диаграмму и помещает туда таблицы Blogs, Persons, Users. Теперь методом перетягивания соединяем поля таблицы Persons.PersonID с Blogs.PersonID и Users.UserId c Persons.PersonID. Названия ключей я как правило оставляю без изменений. После создания двух связей жмем сохранить.

Если мы хотим получить скрипт, с помощью которого можно сделать те же изменения, то нам нужно нажать на кнопку "Generate Change Script". Появится окно из которого можно скопировать код. Эта функция доступна до сохранения изменений.

table key

Сделанные связи помогут нам не только в выборке нужной информации, но и будут проверять корректность данных. Например, мы не сможем создать запись блог, если будет указан не правильно PersonID (т.е. будет указан такой ID, которого нету в таблице Persons). Так же мы не сможем удалить запись Person из таблицы Persons, если у этого пользователя есть хотя бы один блог.  Если мы хотим отказаться от таких ограничений,  и удалять запись Person не зависимо от других таблиц, то нужно свойство ключа "Enforce Foreign Key Constraint" установить в No (связь тогда отобразиться полосатой)

table no key

Но я бы такое делать не рекомендовал. Если нам нужно удалить какую-то главную запись, то правильнее будет создать в таблице поле IsDelete типа bit и изменять его значения при  удалении (ставить True). Это поле нужно предусмотреть как можно раньше, так как оно буде участвовать во всех выборках системы (когда мы будем считывать данные из таблицы, то нужно проверять что бы в записи стояло IsDelete=False).

Теперь перейдем к созданию бекапов и восстановления базы данных.

Для создания бекапа базы, нужно нажать мышкой на названия базы и в контекстном меню выбрать "Tasks"->"Back Up..."

back up

Перед нами откроется окно, где указан путь bak-файла базы. Путь, который указан по умолчанию мы удалим (кнопка Remove) и укажем свой более простой путь (кнопка Add...) При указании нового пути мы так же  должны указать название файла, как правило его называют так же как и базу плюс дата создания. В названии файла нужно обязательно указать его формат .bak

back up

С созданием backup, как правило проблем нет.

Для восстановления системы из bak-файла нужно нажать мышкой на название базы данных и выбрать в контекстном меню "Tasks"->"Restore"->"Database..."

restore

Обратите внимания, что все данные которые занесены в базу будут перезаписаны.

Итак, перед Вами откроется окно в котором нужно указать путь к .bak файлу. Переключитесь на параметр "From device" и укажите место, где находиться файл для восстановления.

restore data

После этого ставим галочку (Restore) возле выбранного файла и переходим на страницу Optioins (на картинке выше см 5.)

В настройках мы должны отметить галочкой пункт "Overwrite the existing database" и указать правильные пути к файлам .ldf и .mdf (не забывайте проверить правильность пути к файлам базы данных)

restore data

Теперь жмем OK. Если у Вас не кто не использует эту базу (нету подключений), то все должно получиться. Иначе нужно разорвать посторонние подключения.

Для этого мы не закрываем окно бекапа, кликаем на название базы данных и выбираем меню "Properties". В окне переходим на закладку Options. В ней выставляем свойству "Restrict Access" значения SINGLE_USER. Жмем ОК, системы спросит, хотим ли мы разорвать все соединения, мы соглашаемся.

remove connection

После этого снова пробуем востановить нашу базу.

Asp.net для начинающих. Содержание

 

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве Магія зміни: Від ночі до дня
Магія Вечірнього Неба: Відлякуйте втомленість дня і зануртеся у світ загадок і краси Якби Росія була людиною, то як би її описав психіатр?