Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус
Шрифт:
Интервал:
Закладка:
Хотя типы данных Visual Basic.NET более близки к типам данных полей SQL Server, чем типы данных Visual Basic 6, между ними все равно нет однозначного соответствия. Например, тип данных int в SQL Server соответствует типу integer в Visual Basic .NET, потому что оба они являются 32-битовыми целыми числами. Однако в SQL Server нельзя создать поле с определенным пользователем типом или типом Object языка Visual Basic .NET.
Схема базы данных
Для создания структуры базы данных рекомендуется не только подготовить список таблиц и полей, но и представить таблицы и поля в графическом виде. После этого вы не только сможете сказать, какие таблицы и поля доступны для вас, но и как они связаны друг с другом. Именно для этого и предусмотрена схема базы данных.
Схему можно представить как карту дорог для вашей базы данных. На схеме все таблицы, поля и отношения в базе данных изображаются графически. Схему базы данных важно рассматривать как часть процесса проектирования программного продукта, поскольку с ее помощью можно быстро понять, что происходит в базе данных.
Схемы не теряют своей актуальности и после завершения процесса проектирования базы данных. Без такой схемы вам будет трудно выполнять многотабличные запросы. Толково составленная графическая схема поможет ответить на вопросы типа: "Какие таблицы мне нужно объединить, чтобы составить список всех заказов с объемом, превышающим $50,00, поступивших от клиентов из штата Миннесота в течение последних 24 часов?" (За дополнительной информацией по созданию запросов, включающих более одной таблицы, обращайтесь к главе 2, "Запросы и команды на языке SQL".)
Официальных способов создания схем баз данных не существует, но есть много средств, которыми можно воспользоваться при их создании. Например, графический редактор Visio отличается гибкостью, быстротой и простотой применения. Более того, он хорошо интегрируется с другими приложениями Windows, в частности с Microsoft Office. Этот редактор распространяется отдельно, а также входит в состав Visual Studio.NET Enterprise Architect.
Все сказанное в пользу Visio не означает, что при создании графической схемы базы данных вы должны использовать только программу Visio. Можно применять любые другие инструменты рисования, с которыми вы знакомы. Приемлемый вариант – программа Microsoft Windows Paint, можно также воспользоваться средствами рисования, предусмотренными в программе Microsoft Word.
Использование инструментов Visual Studio для создания базы данных
Существует несколько способов создания баз данных в SQL Server. С помощью набора инструментов SQL Enterprise Manager базы данных можно создавать графически или программно (с помощью команд на языке SQL). Помимо него, существует множество других внешних инструментов для создания баз данных, например Visio, который описывается далее в главе.
Visual Studio .NET также содержит очень удобный инструмент для работы с базами данных SQL Server. Он входит в состав нового компонента Server Explorer, который предназначен для централизованного управления всеми видами серверного программного обеспечения. Для создания базы данных SQL Server с помощью компонента Server Explorer выполните перечисленные ниже действия.
1. Запустите интегрированную среду разработки Visual Studio .NET, выбрав команду меню Start→Programs→Microsoft Visual Studio .NET→Microsoft Visual Studio .NET.
2. В левой части окна Visual Studio .NET откройте окно Server Explorer, выбрав команду меню View→Server Explorer (учтите, что эта вкладка может иметь горизонтальную или вертикальную ориентацию).
3. В этом окне раскройте узел Servers, найдите ваш компьютер, а затем раскройте узел SQL Servers и найдите в нем экземпляр SQL Server, который установлен на вашем компьютере, как показано на рис. 1.1.
РИС. 1.1. Вкладка Server Explorer интегрированной среды разработки Visual Studio .NET, с помощью которой можно централизованно управлять серверными процессами
4. Для создания новой базы данных щелкните правой кнопкой мыши на имени экземпляра SQL Server, который установлен на вашем компьютере. На рис. 1.1 показан компьютер ROCKO, хотя ваш компьютер может иметь совершенно другое имя. В контекстном меню выберите команду New Database (Создать новую базу данных).
5. На экране появится диалоговое окно Create Database (Создать базу данных). Введите в нем имя базы данных Novelty и щелкните на кнопке OK.
6. После этого в окне Server Explorer появится новая база данных Novelty. При раскрытии узла этой базы данных будут отображены следующие категории объектов базы данных:
• Database Diagrams (Диаграммы базы данных);
• Tables (Таблицы);
• Views (Представления);
• Stored Procedures (Хранимые процедуры);
• Functions (Функции).
Для использования базы данных нужно создать в ней хотя бы одну таблицу. Для этого выполните перечисленные ниже действия.
1. В окне Server Explorer щелкните правой кнопкой мыши на узле Tables базы данных Novelty, а затем из контекстного меню выберите команду New Table (Создать таблицу).
2. После этого в окне Visual Studio .NET появится диалоговое окно для создания структуры новой таблицы. Создайте таблицу tblCustomer с перечисленными ниже определениями полей.
Имя поля Тип данных Длина Наличие неопределенных значений ID int* 4 Нет FirstName varchar 20 Да LastName varchar 30 Да Company varchar 50 Да Address varchar 50 Да City varchar 30 Да State char 2 Да PostalCode varchar 9 Да Phone varchar 15 Да Fax varchar 15 Да E-mail varchar 100 ДаУчтите, что поле ID используется для идентификаторов, т.е., оно содержит уникальное целое число для каждой строки данной таблицы.
3. После ввода этих определений таблица будет иметь вид, показанный на рис. 1.2.
4. Щелкните на поле ID и выберите команду меню Diagram→Set Primary Key (Диаграмма→Создать первичный ключ). Благодаря этому все значения данного поля будут уникальны, т.е. все клиенты будут иметь разные идентификаторы. (Более подробные сведения о первичных ключах приводятся в следующем разделе.)
5. Далее нужно указать, что поле ID используется в SQL Server в целях автоматической генерации идентификационных номеров для клиентов. Для этого щелкните правой кнопкой мыши на окне с определением таблицы и выберите в контекстном окне Indexes/Keys (Индексы/ключи).
6. После этого на экране появится диалоговое окно Property Pages (Страницы свойств) со вкладкой Indexes/Keys. Выберите вкладку Tables (Таблицы) со свойствами таблицы.
7. В списке Table Identity Column (Поле таблицы с идентификаторами) выберите поле ID.
8. Щелкните на кнопке Close (Закрыть).
РИС. 1.2. Создание определения таблицы с помощью Visual Studio .NET
9. Выберите команду меню File→Save Table1 (Файл→Сохранить таблицу Table1). В диалоговом окне Choose Name (Выбрать имя) введите имя tblCustomer и щелкните на кнопке OK. Обратите внимание, что после сохранения таблицы ее имя появится в списке таблиц базы данных Novelty в окне компонента Server Explorer.
Определение индексов и первичного ключа
Теперь, когда вы создали базовую таблицу, осталось определить индексы. Индекс (index) - это атрибут, который можно присвоить полю, чтобы облегчить для процессора баз данных выборку данных на основе информации, хранимой в этом поле. Например, в базе данных, содержащей сведения о сотрудниках, вероятно, будет реализована функция поиска клиента по фамилии, отделу или идентификационному номеру. Поэтому для каждого из этих полей имеет смысл создать индексы, чтобы ускорить процесс выборки записей на их основе.
Если вы поняли, какая польза от применения индексов в структуре базы данных, у вас может возникнуть вопрос: если наличие индексов значительно ускоряет поиск, почему бы не создать индексы для каждого поля каждой таблицы? Ответ прост: индексы — это не только плюс, но и минус. При увеличении количества индексов физически увеличивается размер базы данных, а значит, и объем занимаемой памяти и дискового пространства, в результате чего компьютер работает медленнее. В этом случае польза от применения индексов сводится к нулю. Не существует жесткого правила насчет оптимального количества индексов для каждой таблицы, но основная рекомендация состоит в создании индексов только по таким полям, которые, по вашему мнению, будут чаще всего использованы в запросах. (За дополнительной информацией о том, как использовать содержимое поля в качестве критерия запроса для выборки наборов записей, обращайтесь к главе 2, "Запросы и команды на языке SQL".)