Д о м а ш н е е ... По курсу: Инструментальные средства САПР

advertisement
Московский ордена Ленина, ордена Октябрьской Революции
и ордена Трудового Красного Знамени.
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. Н. Э. БАУМАНА
______________________________________________________________________________
Домашнее задание
«Ипподром»
По курсу:
Студент:
Инструментальные средства САПР
Гаврилов А. Е.
(фамилия, инициалы)
Руководитель:
ИУ4-73
(индекс группы)
Карпунин А. А.
(фамилия, инициалы)
дата сдачи
отметка о защите
Москва
2010
Оглавление
Разработка логической информационной модели БД ................................................................... 3
Разработка физической информационной модели БД ................................................................... 3
Инсталляционный комплект в виде SQL кода ............................................................................... 4
Выводы ............................................................................................................................................... 5
Класс для работы с БД ...................................................................................................................... 6
Выводы ............................................................................................................................................... 7
Разработка логической информационной модели БД
Была разработана логическая модель, отражающая взаимные зависимости между
сущностями по определенным атрибутам. Структура логической модели представлена на
рис. 1.
Рисунок 1 – Логическая информационная модель
Логический уровень модели данных является универсальным и никак не связан с
конкретной реализацией СУБД.
Разработка физической информационной модели БД
В процессе создания физической информационной модели каждому атрибуту сущности был
присвоен определенный тип данных в соответствии с возможностями выбранной СУБД SQL
Server. Результатом работы является физическая информационная модель, представленная на
рис. 2.
Рисунок 2 - Физическая информационная модель
Спецификация физической информационной модели представлена в табл. 1.
Таблица 1 – Спецификация физической модели
Наименование атрибута Таблица
Тип данных
b_id
breed
integer
b_name
breed
varchar(15)
j_id
jockey
integer
j_name
jockey
nvarchar(30)
j_sex
jockey
bit
Null опция
NOT NULL
NULL
NOT NULL
NULL
NULL
j_age
j_weight
r_id
r_name
r_date
r_type
h_id
h_name
h_sex
h_age
h_speed
h_price
h_b_id
rt_id
rt_time
rt_h_id
rt_j_id
rt_r_id
jockey
jockey
round
round
round
round
horse
horse
horse
horse
horse
horse
horse
round_time
round_time
round_time
round_time
round_time
integer
float
integer
nvarchar(30)
datetime
nvarchar(50)
integer
nvarchar(30)
bit
integer
float
float
integer
integer
integer
integer
integer
integer
NULL
NULL
NOT NULL
NULL
NULL
NULL
NOT NULL
NULL
NULL
NULL
NULL
NULL
NULL
NOT NULL
NULL
NULL
NULL
NULL
Разработанная физическая модель соответствует третьей нормальной форме,
поскольку каждый ее атрибут атомарен и находится в прямой зависимости от
соответствующего первичного ключа.
Инсталляционный комплект в виде SQL кода
Для развертывания базы данных разработанной структуры на предприятии, был
написан код SQL скриптов для создания объектов базы данных в СУБД Oracle. Листинг
данного инсталляционного комплекта представлен в табл. 2.
Таблица 2 – Листинг кода создания таблиц
Код
PROMPT Создание таблицы breed
CREATE TABLE [dbo].[breed](
[b_id] [int] IDENTITY(1,1) NOT NULL,
[b_name] [nvarchar](15) NULL
) ON [PRIMARY]
PROMPT Создание таблицы jockey
CREATE TABLE [dbo].[jockey](
[j_id] [int] IDENTITY(1,1) NOT NULL,
[j_name] [nvarchar](30) NULL,
[j_sex] [bit] NULL,
[j_age] [int] NULL,
[j_weight] [real] NULL
) ON [PRIMARY]
PROMPT Создание таблицы round
CREATE TABLE [dbo].[round](
[r_id] [int] IDENTITY(1,1) NOT NULL,
[r_name] [nvarchar](30) NULL,
[r_date] [datetime] NULL,
[r_type] [nvarchar](50) NULL
) ON [PRIMARY]
Комментарий
Создание таблицы breed
Создание таблицы jockey
Создание таблицы round
PROMPT Создание таблицы horse
CREATE TABLE [dbo].[horse](
[h_id] [int] IDENTITY(1,1) NOT NULL,
[h_name] [nvarchar](30) NULL,
[h_sex] [bit] NULL,
[h_b_id] [int] NULL,
[h_age] [int] NULL,
[h_speed] [real] NULL,
[h_price] [real] NULL
) ON [PRIMARY]
PROMPT Создание таблицы round_time
CREATE TABLE [dbo].[round_time](
[rt_id] [int] IDENTITY(1,1) NOT NULL,
[rt_r_id] [int] NULL,
[rt_h_id] [int] NULL,
[rt_j_id] [int] NULL,
[rt_time] [int] NULL
) ON [PRIMARY]
Создание таблицы horse
Создание таблицы round_time
Данные SQL скрипты используются в СУБД SQL Server для создания объектов баз данных.
Выводы
При разработке информационной модели выявлены следующие сущности: порода (breed),
лошадь (horse), наездник (jockey), заезд (round) и запись результата (round_time). На их
основе разработан словарь сущностей и атрибутов. На следующем шаге была разработана
логическая, а затем физическая модель БД. Далее на основе физической модели БД были
получены SQL-скрипты для СУБД SQL Server.
Класс для работы с БД
Листинг кода класса для работы с базой данных приведен ниже:
package WindowsApplication1;
import System.Data.*;
import System.Data.OleDb.*;
import System.Windows.Forms.*;
import System.Data.SqlClient.*;
import System.Data.SqlClient.SqlInfoMessageEventArgs.*;
/**
* Summary description for DataConnectClass.
*/
public class DataConnectClass
{
//Конструктор класса
public DataConnectClass()
{
//
// TODO: Add Constructor Logic here
//
}
//Строка подключения.
private String csConnStr;
//Функция, которая заполняет строку подключения.
private void set_csConnStr()
{
this.csConnStr = "Provider=SQLOLEDB;Data Source=1-ПК\\SQLEXPRESS;Initial
Catalog=hippodrome;Integrated Security=SSPI;";
}
//Функция, которая выполняет запрос SELECT и вазвращает таблицу типа DataTable.
public DataTable csSelect(String requestQuery)
{
set_csConnStr();
OleDbDataAdapter db = new OleDbDataAdapter(requestQuery, csConnStr);
DataTable tb = new DataTable();
db.Fill(tb);
return tb;
}
//Функция, которая выполняет запрос CREATE/UPDATE/DELITE и ничего не возвращает.
public void csVoidRequest(String requestQuery)
{
set_csConnStr();
//OleDbConnection – представитель класса Connection представляет соединение
//с источником (базой) данных и обеспечивает подключение к базе данных.
OleDbConnection con = new OleDbConnection(csConnStr);
con.Open();
//"Команда" – выполнение различных действий над Базой Данных (ИСТОЧНИКЕ ДАННЫХ)
//при использовании ОТКРЫТОГО СОЕДИНЕНИЯ.
//Команда – объект, представляющий класс OleDbCommand
OleDbCommand cm = new OleDbCommand(requestQuery, con);
cm.ExecuteNonQuery();
con.Close();
}
}
В данном классе имеется конструктор класса DataConnectClass(), переменная csConnStr типа
string – строка подключения, которая заполняется методом set_csConnStr().
Также имеется метод класса DataTable csSelect(), в котором выполняется запрос и
возвращается объект типа DataTable. Для подключения и чтения данных используется объект
DataAdapte, который после выполнения запроса методом Fill() заполняет объект типа
DataTable.
В методе csVoidRequest() класса выполняются запросы к базе данных, которые не ничего
возвращают. В качестве поставщика данных в приложение (провайдера) выступает объект
класса ADO Managed Provider (OleDb.NET Data Provider). Запрос выполняется с
использованием методом класса OleDbCommand.
Выводы
При разработке класса работы с базой данных были описаны три метода set_csConnStr(),
csSelect(), csVoidRequest() и описана одна переменная класса, хранящая строку подключения
к базе данных.
Download