You are on page 1of 39

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á


Khoa: Công Nghệ Thông Tin

HỌC PHẦN: CƠ SỞ DỮ LIỆU


NHÓM 7
Sinh viên thực hiện Khóa Lớp Mã sinh viên
Lâm Thị Thanh 11 6 20201628
Vũ Đình Hiệp 11 6 20200869
Phùng Văn Lượng 11 6 20201593
Phạm Quang Thuận 11 6 20201630
Nguyễn Tuấn Thành 11 6 20201695
Đỗ Văn Vinh 11 6 20201524
Đỗ Thị Sao 11 6 20201518
Hoàng Minh Long 11 6 20201827
ĐỀ TÀI
Chương • 1.1 Lời giới thiệu
1:phân tích • 1.2 Phân tích hệ thống kết
quả học tập sinh viên
và thiết kế
hệ thống

• 2.1Thiết kế cơ sở dữ liệu
Chương 2: • 2.2 Từ điển kiểu dữ liệu
thiết kế cơ • 2.3 Một số truy vấn sql
server
sở dữ liệu
CHƯƠNG 1

Phân tích và thiết kế hệ thống


1.1 LỜI GIỚI THIỆU
Trong những năm gần đây sự phát triển của ngành IT đã đem lại những thành tựu to lớn trong việc phát triển kinh tế. Những chương trình tin
học ứng dụng ngày càng nhiều, rất nhiều công việc thủ công trước đây nay đã được sử ly bằng các phần mềm chuyên dụng đã giảm đáng kể công
sức, nhanh chóng và chính xác. Để có một phần mềm ứng dụng đáp ứng được yêu cầu công việc đặt ra thì những người làm tin học phải biết phân
tích thiết kế hệ thống làm việc của của chương trình để từ đó xây dựng nên một phần mền ứng dụng quản lý chương trình đó bằng ngôn ngữ lập
trình nào đó những chương trình, phần mềm ứng dụng đóng vai trò quan trọng trong lĩnh vực quản lý, nó là những công cụ hỗ trợ đắc lực và hầu
như không thể thiếu nhằm đáp ứng đầy đủ nhất thuận lợi nhất những đòi hỏi của công việc quản lý nhờ những công cụ trợ giúp có sẵn, access hay
SQL sever la những phần mềm như vậy nó được ứng dụng rộng rãi trong công tác quản lý không những thế nó con là một ngôn ngữ lập trình khá
mạnh giúp cán bộ quản lý có thể viết những chương trình để sử sụng cơ sơ dữ liệu hay giải quyết một yêu cầu nào đó, những phần mền ứng dụng
này đã phần nào trợ giúp các nhà quản lý trở lên nhanh chóng, thuận lợi, chính xác và kịp thời với những tính năng có sẵn sát với thực tế quản lý .
Chương trình quản lý điểm sinh viên là một chương trình được xây dựng nhằm đáp ứng những đòi hỏi đặt ra của quá trình quản lý như nhập
thong tin sinh viên, tìm kiếm, thống kê, in báo cáo và rất nhiều công việc khác một cách nhanh chóng và thuận tiện, chính xác một cách hệ thống.
Trong chương trình phần mền ứng dụng này thì chương trình nghiên cứu phân tích thiết kế hệ thống đóng vai trò rất quan trọng trong việc thiết
kế chương trình phần mền, nhìn vào bản phân tích ta có thể hiểu được người lập trình muốn làm gì, hiểu được sự hoạt động của hệ thống.
1.2.1
Thực trạng
của hệ thống
1.2.2 quản lí điểm
Bản đồ phân cấp
chức năng 1.2.5
Mô hình thể liên
kết
1.2 .Phân tích hệ
thống kết quả học
tập sinh viên

Ph 1.2.
thu ân lo 4
1.2.3 ộ ại
Bản đồ luồng 1 t c tính các
hự
c t v ào
dữ liệu hể
1.2.1 THỰC TRẠNG CỦA HỆ THỐNG QUẢN LÍ ĐIỂM
Tốn thời gian,công sức
Phương
pháp thủ Dễ nhầ
m lẫn, sai
công xót
Khó
ki ể m tr
a, qu
ản l í
Hi suấ
ệu t th
qu ấp

yêu cầu
ản

Đưa ra máy in khi có


ăn

Việc nhập điểm,


g

tìm kiếm, sửa


chữa, báo cáo,
thống kê cần được
xử lý nhờ máy tính

Cần tổ chức lại cơ cấu


Dữ liệu đầu vào
quản lý, thay thế một số
công đoạn thủ công bằng
“tin học hoá hoá” nhờ có
sự trợ của các chương
Giải pháp trình, phần mềm ứng dụng
Dữ liệu đầu ra
1.2.2 BẢN ĐỒ PHÂN CẤP CHỨC NĂNG
1.2.3 BẢN ĐỒ LUỒNG DỮ LIỆU
1.2.4 PHÂN LOẠI CÁC THUỘC TÍNH VÀO 1 TẬP
THỰC THỂ
Kiểu thực thể liên kết là
nguồn thông tin cần thiết Kiểu thực thể
Kiểu thực thể cho hệ thống các kiểu khóa học:
môn học: MaMH thực thể có thể xuất hiện MaKhoaHoc,T
,TenMH, SoTiet ở các tác nhân ngoài các enKhoaHoc
luồng thông tin nội bộ
hoặc các kho dữ liệu

Kiểu thực Kiểu thực thể sinh viên:


thể điểm: Kiểu thực thể MaSV,TenSV,MaLop,M
MaSV,TenS lớp:MaLop, aKhoaHoc,NgaySinh,Gi
V,DiemThi TenLop,MaK oiTinh,DiaChi
hoa,HeDT
1.2.5 MÔ HÌNH THỰC THỂ LIÊN KẾT

MonHoc
KhoaHoc
MaMH
MaKhoaHoc
TenMH
TenKhoaHoc
SoTiet

SinhVien

TenSV
Diem MaSV
MaLop
MaSV MaKhoaHoc
MaMH GioiTinh
DiemThi NGaySinh Lop
DiaChi
MaLop
TenLop
MaKhoa
HeDT
CHƯƠNG 2 :

Thiết kế cơ sở dữ liệu
2.1 THIẾT KẾ CƠ SỞ DỮ LIỆU
2.2 TỪ ĐIỂN KIỂU DỮ LIỆU
Tên bảng Tên cột Kiểu dữ liệu Độ rộng Miêu tả

SinhVien MaSV Char 15 Mã Sinh Viên

TenSV Nvarchar 20 Tên sinh viên

MaLop Char 10 Mã lớp

MaKhoaHoc Char 5 Mã Khóa học

GioiTinh Bit Giới tính

NgaySinh Data Ngày sinh

DiaChi Nvarchar 50 Địa chỉ

Diem MaSV Char 15 Mã sinh viên

MaMH Char 10 Mã môn học

DiemThi int Điểm thi


2.2 TỪ ĐIỂN KIỂU DỮ LIỆU
Tên bảng Tên cột MaKiểu dữ liệu Độ rộng Miêu tả

MonHoc MaMH Char 10 Mã môn học

TenMH nvarchar 30 Tên môn học

SoTiet tinyint Số tiết

Lớp MaLop Char 10 Mã lớp

MaKhoa Char 10 Mã khoa

HeDT Nvarchar 30 Hệ đào tạo

TenLop Nvarchar 30 Tên lớp

KhoaHoc MaKhoaHoc Char 5 Mã khóa học

TenKhoaHoc nvarChar 20 Tên khóa học


2.3 MỘT SỐ TRUY VẤN SQL

Tạo • Create database QLDSinhVien


database
Sử dụng • use QLDSinhVien
database
TẠO
1
2.3 MỘT SỐ TRUY VẤN SQL CÁC
BẢNG
SINH --tạo bảng sinh viên –
VIÊN create table
5 SinhVien
4
--Tạo Bảng 2 (
Tạo Bảng Lớp-- 3 Tạo --Tạo Bảng
-- MaSV
Khóa Học-- create table Môn Học--
Bảng char(15) not null,
create table Lop create table
Điểm-- TenSV
KhoaHoc ( MonHoc
create nvarchar(20),
( MaLop (
table Diem MaLop
char(10) not ( char(10),
MaKhoaHoc null, MaMH
char(5) not char(10) not
MaSV MaKhoaHoc char(5),
null, TenLop null,
char(15) ,
nvarchar(30), GioiTinh bit,
TenKhoaHoc TenMH
MaMH
nvarchar(20) MaKhoa nvarchar(30)
char(10) , NgaySinh date,
) char(10), ,
DiaChi
HeDT DiemThi nvarchar(50)
nvarchar(30) SoTiet
int
tinyint,
) )
)
)
2.3 MỘT SỐ TRUY VẤN SQL TẠO KHÓA CHÍNH,
KHÓA NGOẠI VÀO
CÁC BẢNG

alter table SinhVien add constraint pk_MaSV


primary key(MaSV)
alter table MonHoc add constraint pk_MaMH primary
key (MaMH)
alter table Lop add constraint pk_MaLop Primary
key(MaLop)
alter table KhoaHoc add constraint pk_KhoaHoc
primary key(MaKhoaHoc)
alter table SinhVien add constraint fk_Lop
foreign key (MaLop) references Lop(MaLop)
alter table Diem add constraint fk_Diem1 foreign
key(MaSV) references SinhVien(MaSV)
alter table Diem add constraint fk_MonHoc foreign
key(MaMH) references MonHoc(MaMH)
alter table SinhVien add constraint fk_KH1
foreign key (MaKhoaHoc) references
KhoaHoc(MaKhoaHoc)
2.3 MỘT SỐ TRUY VẤN SQL
INSERT DỮ LIỆU VÀO BẢNG

-- Nhập Dữ Liệu Bảng Khóa Học--


insert into KhoaHoc values ('K11', N'Khóa 11')
go
2.3MỘT SỐ TRUY VẤN SQL

-- Nhập Dữ Liệu Bảng Lớp--


insert into Lop values ('CNTT6', N'Công Nghệ Thông Tin 6', 'CNTT', N'Đai
Học')
2.3 MỘT SỐ TRUY VẤN SQL

-- Nhập Dữ Liệu Bảng Sinh Viên--


insert into SinhVien values
('200001', N'Nguyễn Văn A','CNTT6','K11', 1, '9-12-2002', N'Quảng Ninh'),
('200002', N'Nguyễn Văn B','CNTT6', 'K11',0, '9-11-2002', N'Quảng Nam'),
('200003', N'Nguyễn Văn D','CNTT6','K11', 1, '9-10-2002', N'Đà Nẵng'),
('200004', N'Nguyễn Văn C','CNTT6','K11',1, '9-9-2002', N'Hà Nội'),
('200005', N'Nguyễn Văn S','CNTT6','K11', 0, '9-8-2002', N'Cần Thơ'),
('200006', N'Nguyễn Văn Z','CNTT6','K11', 1, '9-5-2002', N'Cần Em'),
('200007', N'Nguyễn Văn X','CNTT6','K11',0, '9-4-2002', N'Sài Gòn')
2.3 MỘT SỐ TRUY VẤN SQL

INSERT DỮ LIỆU VÀO


BẢNG

--Nhập Dữ Liệu Bảng Môn Học--


insert into MonHoc values
('SQL', N'Cơ Sở Dữ Liệu', 45),
('GT', N'Giải Tích', 30),
('DS', N'Đại Sô', 30),
('KTMT', N'Kiến Trúc Máy Tính', 40),
('TRR', N'Toán Rời Rạc', 40)
2.3 MỘT SỐ TRUY VẤN SQL

--Nhập Dữ Liệu Bảng Điểm--


insert into Diem values
('200001', 'SQL', 8),
('200002', 'TRR', 9),
('200003', 'DS', 10),
('200004', 'GT', 7),
('200005' ,'KTMT', 6),
('200001', 'SQL', 8)
\
2.3 MỘT SỐ TRUY VẤN SQL

SỬ DỤNG CÂU
RÀNG BUỘC

-- Sử dụng ràng buộc check giới hạn số tiết trong bảng MonHoc phải lớn hơn 0-
alter table MonHoc add constraint ck_Tiet check (SoTiet>0)
-- Hiển thị số tiết lớn hơn 0--
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dụng ràng buộc default đặt mặc định cột ngày sinh 9-11-2000 --
alter table SinhVien add constraint df_SV default('9-11-2000') for NgaySinh
2.3 MỘT SỐ CÂU TRUY VẤN
nhập thêm dữ liệu vào bảng sinh viên
insert into SinhVien(MaSV, TenSV,
MaLop, MaKhoaHoc, GioiTinh, DiaChi)
values
('200010', 'Vu Dinh A', 'CNTT6', 'K11',
1, N'Quảng Ninh')

select*from SinhVien
2.3 MỘT SỐ CÂU TRUY VẤN SQL
SỬ DỤNG CÂU
TRUY VẤN

-- Sử dụng câu truy vấn join hiển thị


tất cả dữ liệu trong bảng Sinh Viên and
bảng Lớp --
select * from SinhVien a join Lop b on
a.MaLop=b.MaLop
2.3 MỘT SỐ CÂU TRUY VẤN SQL

-- Sử dụng câu truy vấn nhiều join hiển thị tất cả dữ


liệu trong bảng Môn Học, Điểm, Sinh Viên, Lớp, Môn
Học--
select * from MonHoc a join Diem b on a.MaMH=b.MaMH
join SinhVien c on b.MaSV =c.MaSV
join Lop d on c.MaLop=d.MaLop join KhoaHoc e on
c.MaKhoaHoc=e.MaKhoaHoc
2.3 MỘT SỐ CÂU TRUY VẤN SQL

/* Sử dụng câu truy vấn left join để lấy các giá trị
Từ bảng bên trái(SinhVien) cộng với các giá trị phù
hợp của bảng bên phải(Diem)
trường hợp không có giá trị phù hợp sẽ là null */
select * from SinhVien a left join Diem b on
a.MaSV=b.MaSV
2.3 MỘT SỐ CÂU TRUY VẪN SQL

/* Sử dụng câu truy vấn right join để lấy các giá trị từ bảng bên
phải(SinhVien) cộng với các giá trị phù hợp của bảng bên trái(MonHoc, Diem)
trường hợp không có giá trị phụ hợp sẽ là null */
select * from MonHoc a right join Diem b on a.MaMH=b.MaMH right join
SinhVien c on b.MaSV=c.MaSV
2.3 MỘT SỐ TRUY VẤN SQL

-- Sử dụng câu truy vấn distinct để lấy một bản ghi trong những bản ghi
giống nhau --
select distinct MaLop from SinhVien
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dụng câu truy vấn where để hiện thỉ DiemThi


phải lớn hơn 7--
select * from Diem where DiemThi > 7
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dụng câu truy vấn group by để nhóm ngày sinh lại --
select count(MaSV) as 'Có Bao Nhiêu Người', year(NgaySinh) as 'Năm
Sinh'
from SinhVien
group by YEAR(NgaySinh)
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dung câu truy vấn order by để sắp xếp thứ tự cột msv từ số lớn
nhất đến số nhỏ nhất --
select * from SinhVien order by MaSV desc
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dụng câu truy vấn delete bảng khóa học--


alter table SinhVien drop constraint fk_KH1
alter table KhoaHoc drop constraint pk_KhoaHoc
delete from KhoaHoc
2.3 MỘT SỐ TRUY VẤN SQL

--Sử dụng câu truy vấn update cột Giới tính --


update SinhVien set GioiTinh=case
when TenSV in(N'Nguyễn Văn A', N'Nguyễn văn B',N'Nguyễn văn C', N'Nguyễn văn
D') then 0
when TenSV in(N'Nguyễn Văn X', N'Nguyễn văn Z',N'Nguyễn văn S', N'Vu Dinh
A') then 1
end
select * from SinhVien
2.3 MỘT SỐ TRUY VẤN SQL

-- Sử dụng câu truy vấn in truy xuất dữ liệu 200001--


select * from SinhVien where MaSV in(200001)
2.3 MỘT SỐ CÂU TRUY VẤN SQL
SỬ DỤNG CÂU
RÀNG BUỘC

-- Sử dụng câu truy vấn like tìm địa chỉ có tên Em--
select * from SinhVien where DiaChi like ('%Em')

You might also like