Автор: Пользователь скрыл имя, 20 Февраля 2013 в 20:16, курсовая работа
Завданням курсової роботи є розробка бази даних компанії з виробництва програмного забезпечення. Актуальність обраної теми зумовлена розвитком бізнесу та технологій, що супроводжується збільшенням об’єму інформації.
Облік заказів та процес управління компанії зберігається у великій кількості файлів, що спричиняє ефект надлишковості – ситуації, коли одні й ті самі дані зберігаються в різних файлах
SqlDataReader SqlDatareadZapros;
dataGridView1.Refresh();
if (textBox1.Text == "")
{
MessageBox.Show("Введите запрос!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
Продовження лістингу 3.6
return;
}
else
{
SqlCommand SqlCommand = new SqlCommand(textBox1.Text, connect2);
SqlDatareadZapros = SqlCommand.ExecuteReader();
ArrayList Arraylist = new ArrayList(0);
foreach (DbDataRecord Record in SqlDatareadZapros)
{
Arraylist.Add(Record);
}
SqlDatareadZapros.Close();
dataGridView1.DataSource = Arraylist;
}
/*catch
{
MessageBox.Show("Некорректный запрос!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}*/
}
private void вернутьсяToolStripMenuItem_
{
this.Close();
}
private void завершитьToolStripMenuItem_
{
Application.Exit();
}
Продовження лістингу 3.6
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void выполнитьЗапросToolStripMenuIt
{
Execute();
}
private void очиститьToolStripMenuItem_
{
textBox1.Text = "";
ArrayList ArrayList = new ArrayList(0);
dataGridView1.DataSource = ArrayList;
}
}
}
У даному коді ми реалізовуємо появу дочірньої форми по відношенню до головної, а саме вказуємо головну форму параметром до відкриття.
Ми передбачаємо, що параметром відкриття форми Form12 буде та форма, в якій реалізоване це відкриття шляхом натиснення кнопки.
Ці рядки передбачають тип розміщення дочірніх форм у контейнері.
Реалізація технологій доступу до баз даних дуже легко вдається з використанням спеціального контейнеру DataGridView. Розмістимо екземпляр такого елементу на формі Form12. Через властивості таблиці задамо їй неможливість додавання, зміни та видалення даних.
Рисунок 3.2 – використанням спеціального контейнеру DataGridView
Створили нову форму Form12 з елементами DataGridView та TextBox. Елементи TextBox використаємо для написання запиту кодованого рядка з, а DataGridView буде призначений для введення запиту.
Усі інші форми заповнимо за технологією. Властивості усіх створених DataGridView візуалізація таблиць. Під додатковими елементами розуміють об’єкти, що відносяться до акселерації виконання задач, методи моніторингу, стильові оформлення і т.д.
Простими реляційними
Рисунок 3.3 – Представлення форми візуалізації таблиці
Варто зазначити, що TableAdapter, у якому відображається таблиця чи представлення, фактично є графічним інтерпретатором таблиці. А отже, ми вносимо зміни не в елемент мови програмування, а безпосередньо у базу даних, отримуючи більш дієвий засіб по її оновленню.
Для TableAdapter передбачений метод Update, що дозволяє зберігати усі внесені зміни. Саме його ми і використаємо для маніпулювання даними у простій реляційній структурі.
Аналогічним чином поновлюються усі довідникові форми.
Поновлення простих структур з однієї таблиці, як бачимо, не так і важко. Але на практиці такі дані є лиш допоміжними, а оперативні дані зберігаються у двох, трьох і більше таблицях.
Для вирішення подібних завданьVisual Studio запропонувала доступ до функцій, що передають скалярні параметри на вказаний маршрут. Такі методи знаходяться у таких просторах імен, як System.Data.SqlClient, System.Data.Odbc і т.д.
Отже, в процесі створення прикладної програми – інтерфейсу мною було здійснено доступ до інформації, що збережена у вигляді реляційної бази даних, а також спроектовано зручний метод маніпулювання даними.
ВИСНОВКИ
Враховуючи мету написання даної курсової роботи, а саме закріплення теоретичних знань та отримання практичних навичок з питання проектування та створення реляційних баз даних, можна стверджувати про її досягнення. У процесі написання курсового проекту були докладно розглянуті наступні питання:
Враховуючи основні цілі створення бази даних а саме необхідність зберігання базі даних всіх даних, що надаються користувачами, виключення можливості надлишковості даних, а також скорочення невизначеності, слід вказати на те, що протягом всього часу розробки даного проекту цим питанням постійно приділялася належна увага. Створена база даних відповідає третій нормальній формі, що вже свідчить про мінімальну надлишковість та запобігання втратам інформації.
У результаті виконання роботи було створено десять базових таблиць, які повністю задовольняють тим задачам, які мають виконуватися за допомогою даної бази.
Розроблені представлення дозволяють різним категоріям користувачів бази даних отримувати конкретну інформацію з питань, які їх цікавлять, не впливаючи при цьому на цілісність інформації в базі даних.
Створена база даних компанії з виробництва ПЗ розрахована на невелику кількість користувачів.
Отже, створена база даних відповідає висунутим до неї вимогам на початку моделювання, але в випадку масштабування вимагає зазначених доопрацювань.
ПЕРЕЛІК ПОСИЛАНЬ
ДОДАТКИ
ДОДАТОК А
Лістинг А.1- Створення базових таблиць та зв’язків
CREATE TABLE Komitet
(
ID_komitet int identity not null primary key,
Glova varchar(25) null,
)
CREATE TABLE Otdelu
(
ID_otd int identity not null primary key,
Nazvanie varchar(25) null,
Bid_deyatelbnosti varcar(30) null
)
CREATE TABLE Zar_plata
(
ID_zarplat int identity not null primary key,
sotrydnik varchar(25) null,
Symma int not null
)
CREATE TABLE Zentr_obrabotki
(
ID_obr int identity not null primary key,
Proekt_nomer int not null
)
Продовження лістингу А.1
CREATE TABLE Dolgnosti
(
ID_dolg int identity not null primary key,
Li4nuy_ID_sotrydnika int not null
)
CREATE TABLE Sotrydniki
(
ID_sotr int identity not null primary key,
Familiya varchar(20) not null,
Imya varchar(20) not null,
Otchestvo varchar(20) null
)
CREATE TABLE Proektu
(
ID_pr int identity not null primary key,
Srok datetime not null,
Stadiya varchar(35) not null,
Nomer_zakaza int not null
)
CREATE TABLE Prodykziya
(
ID_prodykt int identity not null primary key,
Imya_proekta varchar(30) not null
)
Продовження лістингу А.1
CREATE TABLE Magazin
(
ID_magazin int identity not null primary key,
Prodykziya varchar(30) not null
)
CREATE TABLE Klient
(
ID_kl int identity not null primary key,
Zakaz int not null
)
Лістинг А.2 – Додавання зовнішнього ключу
ALTER TABLE Otdelu
ADD
ID_kom1 int not null
ALTER TABLE Dolgnosti
ADD
ID_otdel2 int not null,
ID_kom2 int not null
ALTER TABLE Zar_plata
ADD
ID_dolgnosti int not null,
ID_otdel4 int not null,
ID_kom4 int not null
ALTER TABLE Sotrydniki
ADD
ID_otdel3 int not null,
ID_kom3 int not null
Продовження лістингу А.2
ALTER TABLE Proektu
ADD
ID_otdel1 int not null,
ID_kom int not null,
ID_obrabotka1 int not null
ALTER TABLE Prodykziya
ADD
ID_obrabotka int not null,
ID_mag1 int not null
ALTER TABLE Klient
ADD
ID_mag int not null
Лістинг А.3 –Розробка зв’язків
ALTER TABLE Otdelu
ADD CONSTRAINT klu4i1 FOREIGN KEY (ID_kom1)
REFERENCES Komitet(ID_komitet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Dolgnosti
ADD CONSTRAINT klu4i2 FOREIGN KEY (ID_otdel2)
REFERENCES Otdelu(ID_otd)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Dolgnosti
ADD CONSTRAINT klu4i15 FOREIGN KEY (ID_kom2)
REFERENCES Komitet(ID_kommitet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
Продовження лістингу А.3
ALTER TABLE Zar_plata
ADD CONSTRAINT klu4i14 FOREIGN KEY (ID_otdel4)
REFERENCES Otdelu(ID_otd)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Zar_plata
ADD CONSTRAINT klu4i3 FOREIGN KEY (ID_dolgnosti)
REFERENCES Dolgnosti(ID_dolg)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Zar_plata
ADD CONSTRAINT klu4i16 FOREIGN KEY (ID_kom4)
REFERENCES Komitet(ID_komitet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Sotrydniki
ADD CONSTRAINT klu4i4 FOREIGN KEY (ID_otdel3)
REFERENCES Otdelu(ID_otd)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Sotrydniki
ADD CONSTRAINT klu4i11 FOREIGN KEY (ID_kom3)
REFERENCES Komitet(ID_komitet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Proektu
ADD CONSTRAINT klu4i5 FOREIGN KEY (ID_otdel1)
REFERENCES Otdelu(ID_otd)
ON DELETE NO ACTION
Продовження лістингу А.3
ON UPDATE NO ACTION
ALTER TABLE Proektu
ADD CONSTRAINT klu4i6 FOREIGN KEY (ID_obrabotka1)
REFERENCES Zentr_obrabotki(ID_obr)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Proektu
ADD CONSTRAINT klu4i10 FOREIGN KEY (ID_kom)
REFERENCES Komitet(ID_komitet)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Prodykziya
ADD CONSTRAINT klu4i7 FOREIGN KEY (ID_obrabotka)
REFERENCES Zentr_obrabotki(ID_obr)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Prodykziya
ADD CONSTRAINT klu4i8 FOREIGN KEY (ID_mag1)
REFERENCES Magazin(ID_magazin)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ALTER TABLE Klient
ADD CONSTRAINT klu4i9 FOREIGN KEY (ID_mag)
REFERENCES Magazin(ID_magazin)
ON DELETE NO ACTION
ON UPDATE NO ACTION
ДОДАТОК Б
Лістинг Б.1 - Збереженні процедури та запити об’єднання таблиць
CREATE PROCEDURE sotrydnik
@Familiya varchar(25)
AS
declare @nom_otd varchar(20)
SELECT @nom_otd = Nazvanie
FROM Sotrydniki S,Otdelu O
WHERE O.ID_otd=S.ID_otdel3
IF @Familiya='Пупс'
print 'Сотрудник Производ.контроля'
else
print 'сотрудник не Производ.
EXEC sotrydnik
'Костенко'
DROP PROCEDURE sotrydnik
CREATE PROCEDURE proekt
@nomproecta int
AS
declare @Name varchar(20)
declare @Number int
SELECT @Name = Imya_proekta,@Number = Proekt_nomer
FROM Prodykziya Pr,Zentr_obrabotki Zob
WHERE Zob.ID_obr=Pr.ID_obrabotka
IF @nomproecta!=@Number
print ‘Данного номера нет в базе’
else
select @Name as Im9,@Number as Homer
Продовження лістингу Б.1
EXEC proekt
'244879'
EXEC proekt
'24466'
DROP PROCEDURE proekt
CREATE PROCEDURE novzakaz
@Zakaz int,
@ID_mag int,
@ID_kl int output
AS
INSERT INTO Klient(Zakaz,ID_mag) VALUES(@Zakaz,@ID_mag)
select @ID_kl=@@identity
declare @NumberZakaza int
EXEC novzakaz
@Zakaz='1235',
@ID_mag='3',
@ID_kl = @NumberZakaza output
select @NumberZakaza as HOBUyZAKAZ
select Zakaz
from Klient
where ID_kl=@NumberZakaza
CREATE PROCEDURE novproekt
@Srok datetime = null,
@Stadiya varchar(35),
@Nomer_zakaza int,
@ID_otdel1 int,
@ID_kom int,
@ID_obrabotka1 int,
@ID_pr int output
AS
Продовження лістингу Б.1
INSERT INTO Proektu(Srok,Stadiya,Nomer_
VALUES(@Srok,@Stadiya,@Nomer_
select @ID_pr=@@identity
declare @NumberProekta int
EXEC novproekt
@Srok = '12/05/2011',
@Stadiya = 'íà÷àëüíàÿ',
@Nomer_zakaza = '216354',
@ID_otdel1 = '2',
@ID_kom = '1',
@ID_obrabotka1 ='3',
@ID_pr = @NumberProekta output
select @NumberProekta as HOBUyPROEKT
select Srok,Stadiya,Nomer_zakaza
from Proektu
where ID_pr=@NumberProekta
Лістинг Б.2 - Запити
select distinct Nazvanie,Nomer_zakaza,Li4nuy_
from Sotrydniki,Dolgnosti,Otdelu,
where ID_otd=ID_otdel1
and ID_otd=ID_otdel3
and ID_otd=ID_otdel2
and Li4nuy_ID_sotrydnika BETWEEN 100 AND 104
group by Nazvanie,Nomer_zakaza,Li4nuy_
order by Familiya;
Продовження лістингу Б.2
select distinct Glova,Nomer_zakaza,Nazvanie,
From Komitet,Proektu,Otdelu,
where ID_komitet=ID_kom
and ID_otd=ID_otdel1
and ID_otd=ID_otdel3
and Srok>'10.03.2011'
order by Srok desc
select Nazvanie,Familiya,Imya,Symma,
From Sotrydniki,Zar_plata,Otdelu
where ID_otd=ID_otdel3
and ID_otdel3=ID_otdel4
order by Familiya
select distinct Imya_proekta,Proekt_nomer,
From Prodykziya,Zentr_obrabotki,Pro
where ID_obr=ID_obrabotka