You are on page 1of 21

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

KHOA CÔNG NGHỆ THÔNG TIN

-----o0o-----

BÁO CÁO BÀI TẬP LỚN

KỸ THUẬT PHẦN MỀM ỨNG DỤNG

Tên đề tài: QUẢN LÝ CHUNG CƯ

GIÁO VIÊN HƯỚNG DẪN: ĐỖ QUANG HƯNG

SINH VIÊN THỰC HIỆN : ĐINH VĂN MINH


ĐỒNG THANH HẢI MINH
HÀ TRƯƠNG NHẬT NAM
NGUYỄN HẢI QUANG
TRẦN DANH THÁI
TRẦN ĐÌNH TUYÊN

LỚP 70DCDT21

HÀ NỘI 10-2021
MỤC LỤC
MỞ ĐẦU....................................................................................................................... 3
PHẦN 1 : GIỚI THIỆU VỀ PHẦN MỀM SQL SEVER..........................................3
1.1. SQL sever là gì ?..............................................................................................3
1.2. Lịch sử phần mềm SQL sever..........................................................................3
1.3. SQL sever dùng để làm gì ?.............................................................................4
PHẦN 2: PHÂN TÍCH BÀI TOÁN, THIẾT KẾ CẤU TRÚC BẢNG, SƠ ĐỒ
DIAGRAM VÀ TẠO KHÓA NGOẠI........................................................................4
2.1. Phân tích bài toán................................................................................................4
2.2. Thiết kế cấu trúc bảng.........................................................................................5
2.2.1. Bảng Khu căn hộ.........................................................................................5
2.2.2. Bảng Cư dân................................................................................................5
2.2.3. Bảng Căn hộ.................................................................................................6
2.2.4. Bảng Hợp đồng............................................................................................6
2.3. Sơ đồ diagram.....................................................................................................7
2.4. Nhập dữ liệu cho các bảng..................................................................................8
PHẦN 3: TẠO BẢNG ẢO, THỰC HIỆN THỐNG KÊ, TẠO THỦ TỤC VÀ TẠO
TRIGGER..................................................................................................................11
3.1. Tạo bảng ảo.......................................................................................................11
3.2. Thực hiện thống kê...........................................................................................13
3.3.Tạo thủ tục.........................................................................................................14
3.4. Tạo trigger........................................................................................................17
PHẦN 4 : KẾT LUẬN...............................................................................................19
4.1. Mục tiêu đạt......................................................................................................19
4.2. Mục tiêu chưa đạt..............................................................................................19
4.3. Nhận xét đánh giá các thành viên trong nhóm..................................................19
DANH MỤC TÀI LIỆU THAM KHẢO..................................................................20

1
STT Tên thành viên Nhiệm vụ
1 Đinh Văn Minh Tạo trigger
2 Đồng Thanh Hải Minh Tạo view,tạo thống kê
3 Hà Trương Nhật Nam Tạo thủ tục
4 Nguyễn Hải Quang Tạo bảng và các khóa chính khóa ngoại
5 Trần Danh Thái Tìm dữ liệu cho bảng
6 Trần Đình Tuyên Hoàn thiện báo cáo
PHÂN CÔNG NHIỆM VỤ

DANH MỤC BẢNG BIỂU


Bảng 1 : Bảng khu căn hộ..............................................................................................5
Bảng 2 : Bảng cư dân.....................................................................................................5
Bảng 3 : Bảng mã căn hộ...............................................................................................6
Bảng 4 :Bảng hợp đồng.................................................................................................6
Bảng 5 : Xem thông tin chủ căn hộ K1.1502...............................................................12
Bảng 6: Xem những căn hộ có giá trên 2 tỷ.................................................................12
Bảng 7: Xem những căn hộ có diện tích 100m2..........................................................12
Bảng 8: Xem những khu căn hộ ở Hà Đông................................................................13
Bảng 9: Xem những cư dân lớn hơn 30 tuổi................................................................13
Bảng 10: Đếm số lượng căn hộ đã bán........................................................................13
Bảng 11: Đếm những căn hộ có 5 phòng.....................................................................14
Bảng 12 : Đếm số lượng tổng số lượng căn hộ............................................................14
Bảng 13 : Đếm tổng số lượng hợp đồng.....................................................................14
Bảng 14: Đếm số cư dân nữ.........................................................................................14
Bảng 15: Thủ tục liệt kê tất cả cư dân..........................................................................15
Bảng 16: Thủ tục liệt kê những cư dân Nam...............................................................15
Bảng 17: Thủ tục liệt kê ra các căn hộ có 6 phòng.......................................................16
Bảng 18: Thủ tục liệt kê những cư dân có quê quán là Bắc Giang...............................16
Bảng 19: Thủ tục liệt kê những người bé hơn 30 tuổi..................................................17
Bảng 20: Tạo trigger bắt sự kiện thêm mới dữ liệu vào bảng Khu căn hộ...................17
Bảng 21: Tạo trigger bắt sự kiện xóa dữ liệu bảng Khu căn hộ...................................18
Bảng 22: Tạo trigger bắt sự kiện thêm mới cư dân vào bảng cư dân...........................18
Bảng 23: Tạo trigger bắt sự kiện Xóa cư dân trong bảng cư dân.................................18
Bảng 24: Tạo trigger bắt sự kiện thêm mới căn hộ......................................................19

2
MỞ ĐẦU
Thời đại công nghệ thông tin ngày càng phát triển, những phần mềm ứng dụng ngày
càng phổ biến trong cuộc sống hiện đại của chúng ta . Không thể không kể đến những
phần mềm quản lý để việc điều hành quản lý được diễn ra một cách khoa học hơn.
Chính vì vậy chúng em đã quyết định lựa chọn và tìm hiểu đề tài “QUẢN LÝ
CHUNG CƯ ” để thấy được việc ứng dụng phần mềm trong các khâu quản lý của các
tòa nhà chung cư hiện nay
Sau đây là bài làm của nhóm em gồm 4 phần như sau :
PHẦN 1 : GIỚI THIỆU VỀ PHẦN MỀM SQL SEVER
PHẦN 2: PHÂN TÍCH BÀI TOÁN, THIẾT KẾ CẤU TRÚC BẢNG, SƠ ĐỒ
DIAGRAM VÀ TẠO KHÓA NGOẠI
PHẦN 3: TẠO BẢNG ẢO, THỰC HIỆN THỐNG KÊ, TẠO THỦ TỤC VÀ TẠO
TRIGGER.
PHẦN 4 : KẾT LUẬN

PHẦN 1 : GIỚI THIỆU VỀ PHẦN MỀM SQL SEVER


1.1. SQL sever là gì ?
SQL là gì? SQL là viết tắt của Structured Query Language, nghĩa là
ngôn ngữ truy vấn dữ liệu. Có thể coi ngôn ngữ SQL là ngôn ngữ chung mà bất
cứ hệ thống cơ sở dữ liệu quan hệ (RDBMS) nào cũng phải đáp ứng, điển hình
như: Oracle Database, SQL Server, MySQL…
1.2. Lịch sử phần mềm SQL sever
Lịch sử của Microsoft SQL Server bắt đầu với sản phẩm Microsoft SQL
Server đầu tiên – SQL Server 1.0, một máy chủ 16 bit cho hệ điều hành OS / 2
vào năm 1989 – và kéo dài đến hiện tại.
Các cột mốc quan trọng đánh dấu sự phát triển của Microsoft SQL
Server:

MS SQL Server cho OS / 2 bắt đầu như là một dự án để cổng Sybase


SQL Server lên OS / 2 vào năm 1989, bởi Sybase , Ashton-Tate và Microsoft .
SQL Server 4.2 cho NT được phát hành vào năm 1993, đánh dấu mục
nhập vào Windows NT .
SQL Server 6.0 được phát hành vào năm 1995, đánh dấu sự kết thúc hợp
tác với Sybase ; Sybase sẽ tiếp tục phát triển các biến thể riêng của SQL
Server , Sybase Adaptive Server Enterprise , độc lập với Microsoft.
SQL Server 7.0 được phát hành vào năm 1998, đánh dấu việc chuyển đổi
mã nguồn từ C thành C ++.
SQL Server 2005, được phát hành vào năm 2005, hoàn thành việc sửa
đổi hoàn chỉnh mã Sybase cũ thành mã Microsoft.

3
SQL Server 2017, được phát hành vào năm 2017, bổ sung thêm hỗ trợ
Linux cho các nền tảng Linux này: Red Hat Enterprise Linux , SUSE Linux
Enterprise Server , Ubuntu & Docker Engine .
1.3. SQL sever dùng để làm gì ?
Sau đây chúng ta sẽ điểm qua một số công dụng chính của SQL.

Chọn lọc một số cột nhất định trong bảng dữ liệu: Thường ta không sử
dụng tất cả các thông tin của bảng cùng một lúc. Có thể dùng SQL để tách ra
chỉ những cột cần thiết mà thôi.
Lọc các bản ghi theo những tiêu chuẩn khác nhau: như tách riêng các
hoá đơn của một khách hàng nào đó, hay in danh sách nhân viên chỉ của một
vài phòng ban...
Sắp xếp các bản ghi theo những tiêu chuẩn khác nhau: Mỗi loại báo cáo
thường có yêu cầu sắp xếp các bản ghi theo những cột khác nhau để tiện cho
việc theo dõi. Có báo cáo thống kê sắp xếp theo khách hàng, báo cáo khác lại
sắp xếp theo mặt hàng được bán, mặc dù tất cả thông tin nằm trong cùng một
bảng Bán hàng. Ta có thể thực hiện sắp xếp theo một hoặc nhiều cột khác nhau
bằng SQL. Cập nhật, xoá các bản ghi trên toàn bảng theo những điều kiện khác
nhau: ví dụ như khi cần xoá toàn bộ các hoá đơn đã phát hành cách đây 5 năm...
Kết hợp hai hay nhiều bảng theo chiều ngang: Trong CSDL, mỗi bảng
lưu trữ thông tin về một đối tượng và các bảng liên hệ với nhau qua các trường
khoá. Dùng SQL để thực hiện việc kết hợp các bảng này với nhau thông qua
các trường khoá như ở ví dụ trên để có được bảng kết quả theo yêu cầu.
Nối hai hay nhiều bảng theo chiều dọc: khi dữ liệu rất lớn hoặc phân tán
ở nhiều nơi ta có thể phải quản lý nhiều bảng theo cùng một mẫu, như mỗi bảng
cho một quý, tháng hoặc một công ty. Khi cần tổng hợp dữ liệu của cả năm
hoặc của cả tổng công ty ta có thể dùng SQL để nối các bảng lại với nhau.
Tạo bảng mới, thay đổi cấu trúc bảng đã có: phục vụ cho việc lập trình.
Thực hiện các phép tính toán thống kê theo từng nhóm: tổng, trung bình,
max, min... Đây là chức năng thường xuyên được sử dụng để tổng hợp thông tin
trước khi in báo cáo như tính tổng số lượng của từng mặt hàng, số hàng đã bán
cho từng khách hàng...
Kết nối với dữ liệu trên máy chủ (Server): Khi kho dữ liệu được tập
trung trên máy chủ trong MS SQL Server hay Oracle ... ta phải dùng lệnh SQL
để trực tiếp thâm nhập vào cơ sở dữ liệu.
Kết hợp các trang Web với CSDL bằng lệnh SQL. Có thể phân ra hai
loại câu lệnh SQL, một loại tổng hợp dữ liệu sang bảng mới (bảng mới có thể
chỉ tồn tại trong bộ nhớ hoặc được ghi ra đĩa) và một loại chỉ cập nhật dữ liệu,
cấu trúc của các bảng đã có. Bảng mới được tạo ra từ câu lệnh SQL có thể được
sử dụng ở mọi nơi trong chương trình có yêu cầu dữ liệu dạng bảng, đặc biệt
dùng cho báo cáo (report), danh sách (list), đối tượng lưới (grid)...

4
PHẦN 2: PHÂN TÍCH BÀI TOÁN, THIẾT KẾ CẤU TRÚC BẢNG, SƠ ĐỒ
DIAGRAM VÀ TẠO KHÓA NGOẠI
2.1. Phân tích bài toán
Việc quản lý chung cư nhà ở là bài toán đặt ra cho hầu hết các nahf quản lý quản lý
làm sao cho khoa học và chính xác nhất có thể.
Qua tham khảo thực tế thì nhóm em đưa ra những ý chính như sau :
Muốn quản lý chung cư thì các vấn đề liên quan đến từng khu vực : Mã khu, Tên khu,
số tầng, địa chỉ sẽ được kiểm soát trong khu căn hộ
Để quản lý thông tin cư dân sẽ lập nên bảng cư dân mỗi cư dân sẽ có một mã riêng sẽ
dễ dàng quản lý các thông tin cá nhân của từng người.
Để quản lý căn hộ ta cũng có mã căn hộ trạng thái bán hay chưa bán, giá cả , số phòng,
mã căn hộ …
Để quản lý hợp đồng ta cũng có những mã hợp đồng, tên khách hàng…
2.2. Thiết kế cấu trúc bảng
2.2.1. Bảng Khu căn hộ

Tên cột Kiểu dữ liệu Giải thích


MaKhu Char(5) Mã Khu
TenKhu Nvarchar(50) Tên Khu
SoTang Int Số tầng
SoCanTT Int Số căn trên tầng
DiaChi Nvarchar(100) Địa chỉ
Bảng 1 : Bảng khu căn hộ

Câu lệnh :
CREATE TABLE KHUCANHO
(
MaKhu CHAR(5) CONSTRAINT pk_KHUCANHO PRIMARY KEY ,
TenKhu NVARCHAR(50) NOT NULL ,
SoTang INT NOT NULL,
SoCanTT INT NOT NULL,
DiaChi NVARCHAR(100) NOT NULL,
)
2.2.2. Bảng Cư dân
Tên cột Kiểu dữ liệu Giải thích
MaCuDan Char(6) Mã cư dân
TenCuDan Nvarchar(50) Tên cư dân
NgaySinh Date Ngày sinh
GioiTinh Nvarchar(5) Giới tính
SoDT Char(10) Số điện thoại
SoCMT Char(12) Số chứng minh thư
5
QueQuan Nvarchar(100) Quê quán
Bảng 2 : Bảng cư dân
Câu lệnh
CREATE TABLE CUDAN
(
MaCuDan CHAR(6) CONSTRAINT pk_CUDAN PRIMARY KEY ,
TenCuDan NVARCHAR(50) NOT NULL ,
NgaySinh DATE NOT NULL,
GioiTinh NVARCHAR(5) NOT NULL,
SoDT CHAR(10) NOT NULL ,
SoCMT CHAR(12) NOT NULL ,
QueQuan NVARCHAR(100) NOT NULL
)
2.2.3. Bảng Căn hộ
Tên cột Kiểu dữ liệu Giải thích
MaCanHo Char(10) Mã căn hộ
DienTich Float Diện tích
Gia Bigint Giá
TrangThai Nvarchar(50) Trạng thái
SoPhong Int Số phòng
MaCuDan Char(6) Mã cư dân
MaKhu Char(5) Mã Khu
Bảng 3 : Bảng mã căn hộ

Câu lệnh
CREATE TABLE CANHO
(
MaCanHo CHAR(10) CONSTRAINT pk_CANHO PRIMARY KEY ,
DienTich FLOAT NOT NULL,
Gia BIGINT NOT NULL ,
TrangThai NVARCHAR(50) NOT NULL,
SoPhong INT NOT NULL,
MaCuDan CHAR(6),
MaKhu CHAR(5)
)
2.2.4. Bảng Hợp đồng
Tên cột Kiểu dữ liệu Giải thích
MaHopDong Char(12) Mã hợp đồng
NgayGiaoDich Date Ngày giao dịch
DiaChiKH Nvarchar(100) Địa chỉ khách hàng
MaCuDan Char(6) Mã cư dân
MaCanHo Char(10) Mã căn hộ

Bảng 4 :Bảng hợp đồng

6
Câu lệnh :
CREATE TABLE HOPDONG
(
MaHopDong CHAR(12) NOT NULL CONSTRAINT pk_HOPDONG
PRIMARY KEY ,
NgayGiaoDich DATE NOT NULL,
DiaChiKH NVARCHAR(100) NOT NULL ,
MaCuDan CHAR(6),
MaCanHo CHAR(10)
)

2.3. Sơ đồ diagram

Câu lệnh tạo khóa ngoại giữa các bảng :


alter table dbo.HOPDONG add constraint FK_MaCuDan foreign key(MaCuDan)
references dbo.CUDAN(MaCuDan)

7
alter table dbo.HOPDONG add constraint FK_MaCanHo foreign key(MaCanHo)
references dbo.CANHO(MaCanHo)
alter table dbo.CANHO add constraint FK_MaKhu foreign key(MaKhu) references
dbo.KHUCANHO(MaKhu)
alter table dbo.CANHO add constraint FK_MaCuDanx foreign key(MaCuDan)
references dbo.CUDAN(MaCuDan)
2.4. Nhập dữ liệu cho các bảng
Do có các khóa chính khóa ngoại ràng buộc với nhau nên thứ tự nhập dữ liệu sẽ như
sau :
Bước 1 : Bảng KHUCANHO
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K1',N'AnLand1',30,15,N'Hà Đông')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K2',N'AnLand2',25,15,N'Hà Đông')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K3',N'The Good',25,15,N'Cầu Giấy')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K4',N'Vincom Park',30,15,N'Hai Bà Trưng')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K5',N'Eco Life Capital',15,20,N'Nam Từ Liêm')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K6',N'Hi Land',25,20,N'Hà Đông')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K7',N'Nam Cường Building',26,20,N'Hà Đông')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K8',N'PCCC1 Thanh Xuân',27,20,N'Thanh Xuân')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K9',N'PCC1 Hà Đông',27,20,N'Hà Đông')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K10',N'The Manor Mỹ Đình',25,25,N'Mỹ Đình')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K11',N'Dolphil Plaza',30,25,N'Cầu Giấy')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K12',N'Eco Park',35,25,N'Hai Bà Trưng')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K13',N'Sky Gaden',25,25,N'Hai Bà Trưng')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K14',N'Time City',25,30,N'Hai Bà Trưng')
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K15',N'Park City',30,30,N'Nam Từ Liêm')
Bước 2 : Bảng CUDAN
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111111',N'Nguyễn Bá
Quyền',N'1998/05/21',N'Nam','0965125879','0102015869',N'Lục Ngạn, Bắc Giang')
8
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111112',N'Hoàng Thị
Hoa',N'1967/11/11',N'Nữ','0364858963','0256897523',N'Thanh Liêm, Hà Nam')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111113',N'Nguyễn Văn
Diện',N'1988/12/01',N'Nam','0369858978','3698525874',N'Cầu Giấy, Hà Nội')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111114',N'Nguyễn Thảo
Hoa',N'1974/01/02',N'Nữ','0369858987','2568974258',N'Lục Ngạn, Bắc Giang')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111115',N'Ngô Bá Trung',N'1976/02/05',N'Nam','0325741478','2658975258',N'Hải
Hậu, Nam Định')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111116',N'Phạm Ánh
Giang',N'1977/03/10',N'Nữ','0369258214','0256897852',N'Nga Sơn, Thanh Hóa')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111117',N'Trần Thị Huyền
Linh',N'1982/04/15',N'Nữ','0258258478','0368682548',N'Hai Bà Trưng, Hà Nội')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111118',N'Nguyễn Tuấn
Khôi',N'1983/05/25',N'Nam','2582582589','0369875258',N'Mỹ Đình,Hà Nội ')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111119',N'Nguyễn Bá
Việt',N'1984/06/30',N'Nam','0145987525','0368425875',N'Lục Ngạn, Bắc Giang')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111120',N'Lê Hữu
Phước',N'1991/07/25',N'Nam','0369855528','0258697822',N'Tam Đảo, Vĩnh Phúc')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111121',N'Trần Quang
Đoàn',N'1992/08/27',N'Nam','2555874889','0364584258',N'Nga Sơn, Thanh Hóa')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111122',N'Lưu Quang
Vũ',N'1993/09/19',N'Nam','0369888852','0369878521',N'Quỳnh Lưu, Nghệ An')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111123',N'Trần Thị Như
Quỳnh',N'1994/10/18',N'Nữ','0369812485','0236987521',N'Triệu Sơn, Thanh Hóa')
9
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111124',N'Trần Thị Hương
Ánh',N'1996/11/16',N'Nữ','0369875822','6975256569',N'Hiệp Hòa, Bắc Giang')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111125',N'Nguyễn Văn
Đô',N'1998/12/25',N'Nam','0258987558','0369875825',N'Yên Bình, Yên Bái')
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan) values
(N'111126',N'Nguyễn Thị
Hồng',N'1991/01/12',N'Nữ','0258936452','0369592147',N'Lục Yên, Yên Bái')
Bước 3: Bảng CANHO
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K1.1502',51,2500000000,N'Đã bán',5,N'111111',N'K1')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K1.1615',100,3500000000,N'Chưa bán',6,null,N'K1')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K2.0502',150,4500000000,N'Đã bán',6,N'111112',N'K2')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K2.0615',50,1500000000,N'Đã bán',4,N'111113',N'K2')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K3.0708',55,1600000000,N'Chưa bán',4,null,N'K3')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K3.0910',60,1900000000,N'Đã bán',3,N'111114',N'K3')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K4.0708',65,2100000000,N'Đã bán',3,N'111115',N'K4')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K5.1215',90,3500000000,N'Chưa bán',5,null,N'K5')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K6.1416',150,4600000000,N'Chưa bán',7,null,N'K6')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K7.1518',90,2500000000,N'Đã bán',5,N'111116',N'K7')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K8.1607',80,3700000000,N'Đã bán',5,N'111117',N'K8')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K9.2021',200,6500000000,N'Đã bán',9,N'111118',N'K9')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K10.2007',200,6500000000,N'Chưa bán',11,null,N'K10')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K11.2001',100,2500000000,N'Đã bán',5,N'111119',N'K11')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K12.1502',200,5500000000,N'Chưa bán',5,null,N'K12')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K13.0910',100,3100000000,N'Đã bán',6,N'111120',N'K13')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K14.0908',120,3500000000,N'Chưa bán',7,null,N'K14')
10
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K15.1107',95,2500000000,N'Đã bán',5,N'111121',N'K15')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K5.1106',55,1800000000,N'Đã bán',4,N'111122',N'K5')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K6.1109',150,4600000000,N'Đã bán',5,N'111123',N'K6')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K6.1111',150,4000000000,N'Đã bán',7,N'111123',N'K6')
insert into CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu)
values (N'K11.1109',150,4600000000,N'Đã bán',5,N'111120',N'K11')
Bước 4 : Bảng HOPDONG
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000001',N'2019/08/09',N'Cầu Giấy, Hà Nội',N'111111',N'K1.1502')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000002',N'2018/09/01',N'Hai Bà Trưng, Hà Nội',N'111112',N'K2.0502')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000003',N'2019/10/15',N'Bắc Từ Liêm, Hà Nội',N'111113',N'K2.0615')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000004',N'2017/11/15',N'Tây Hồ, Hà Nội',N'111114',N'K3.0910')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000005',N'2020/12/11',N'Hà Đông, Hà Nội',N'111115',N'K4.0708')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000006',N'2021/08/26',N'Hà Đông, Hà Nội',N'111116',N'K7.1518')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000007',N'2015/01/30',N'Thanh Xuân, Hà Nội',N'111117',N'K8.1607')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000008',N'2016/02/25',N'Thanh Xuân, Hà Nội',N'111118',N'K9.2021')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000009',N'2017/03/21',N'Cầu Giấy, Hà Nội',N'111119',N'K11.2001')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000010',N'2018/04/19',N'Hà Đông, Hà Nội',N'111120',N'K13.0910')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000011',N'2019/05/07',N'Mỹ Đình, Hà Nội',N'111121',N'K15.1107')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000012',N'2017/11/17',N'Tây Hồ, Hà Nội',N'111122',N'K5.1106')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000013',N'2018/07/06',N'Nam Từ Liêm, Hà Nội',N'111123',N'K6.1109')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000014',N'2021/08/26',N'Bắc Từ Liêm, Hà Nội',N'111123',N'K6.1111')
insert into HOPDONG(MaHopDong,NgayGiaoDich,DiaChiKH,MaCuDan,MaCanHo)
values (N'HD000015',N'2019/07/16',N'Tây Hồ, Hà Nội',N'111120',N'K11.1109')

PHẦN 3: TẠO BẢNG ẢO, THỰC HIỆN THỐNG KÊ, TẠO THỦ TỤC VÀ TẠO
TRIGGER.
3.1. Tạo bảng ảo
3.1.1. Xem thông tin chủ căn hộ K1.1502

11
Câu lệnh :
create view [Thông tin chủ căn hộ K1.1502] as
select TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan from
CANHO,CUDAN
where (CANHO.MaCuDan=CUDAN.MaCuDan) and (MaCanHo
=N'K1.1502')
Kết quả :

Bảng 5 : Xem thông tin chủ căn hộ K1.1502


3.1.2. Xem những căn hộ có giá trên 2 tỷ
Câu lệnh : Kết quả :
create view [Căn hộ giá trên 2 tỷ ] as
select MaCanHo,DienTich,Gia
from CANHO
where Gia>2000000000

Bảng 6: Xem những căn hộ có giá trên 2 tỷ


3.1.3. Xem những căn hộ có diện tích 100m2

Câu lệnh :
create View [Căn hộ 100m2 ] as
select MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu from
CANHO
where DienTich = 100

Kết quả :

Bảng 7: Xem những căn hộ có diện tích 100m2


12
3.1.4. Xem những khu căn hộ ở Hà Đông
Câu lệnh :
create View [Khu căn hộ ở Hà Đông] as
select MaKhu,TenKhu,SoTang,SoCanTT,DiaChi from KHUCANHO
where DiaChi = N'Hà Đông'

Kết quả :

Bảng 8: Xem những khu căn hộ ở Hà Đông


3.1.5. Xem những cư dân lớn hơn 30 tuổi
Câu lệnh :
create view [Cư dân lớn hơn 30 tuổi] as
select MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan
from CUDAN
where YEAR( GETDATE())-YEAR(NgaySinh) > 30
Kết quả :

Bảng 9: Xem những cư dân lớn hơn 30 tuổi


3.2. Thực hiện thống kê
3.2.1. Đếm số lượng căn hộ đã bán
Câu lệnh
select COUNT(TrangThai)from CANHO
where TrangThai = N'Đã bán'

Kết quả

13
Bảng 10: Đếm số lượng căn hộ đã bán

3.2.2. Đếm những căn hộ có 5 phòng


Câu lệnh
select COUNT (SoPhong)from CANHO
where SoPhong = 5

Kết quả

Bảng 11: Đếm những căn hộ có 5 phòng


3.2.3. Đếm số lượng tổng số lượng căn hộ
Câu lệnh
select COUNT (MaCanHo)from CANHO
Kết quả

Bảng 12 : Đếm số lượng tổng số lượng căn hộ

3.2.4. Đếm tổng số lượng hợp đồng


Câu lệnh
select COUNT (MaHopDong)from HOPDONG
Kết quả

Bảng 13 : Đếm tổng số lượng hợp đồng


3.2.5. Đếm số cư dân nữ
Câu lệnh
Select COUNT(GioiTinh) from CUDAN
where GioiTinh = N'Nữ'
Kết quả

Bảng 14: Đếm số cư dân nữ

14
3.3.Tạo thủ tục
3.3.1. Thủ tục liệt kê tất cả cư dân
Câu lệnh
create proc All_CuDan as
begin
select * from CUDAN
end
exec All_CuDan
Kết quả

Bảng 15: Thủ tục liệt kê tất cả cư dân


3.3.2. Thủ tục liệt kê những cư dân Nam
Câu lệnh
create proc Nam_CuDan as
begin
select TenCuDan, GioiTinh,QueQuan from CUDAN
where GioiTinh =N'Nam'
end

exec Nam_CuDan
Kết quả

15
Bảng 16: Thủ tục liệt kê những cư dân Nam
3.3.3. Thủ tục liệt kê ra các căn hộ có 6 phòng
Câu lệnh
create proc PP_CanHo as
begin
select MaCanHo,SoPhong,MaKhu from CANHO
where SoPhong = 6
end
exec PP_CanHo
Kết quả

Bảng 17: Thủ tục liệt kê ra các căn hộ có 6 phòng

3.3.4. Thủ tục liệt kê những cư dân có quê quán là Bắc Giang
Câu lệnh
create proc CuDan_BacGiang as
begin
select MaCuDan,TenCuDan,SoDT,SoCMT,QueQuan from CUDAN
where QueQuan = N'Lục Ngạn, Bắc Giang'
end
exec CuDan_BacGiang
Kết quả

Bảng 18: Thủ tục liệt kê những cư dân có quê quán là Bắc Giang
16
3.3.5. Thủ tục liệt kê những người bé hơn 30 tuổi

Câu lệnh
create proc BeHon_30Tuoi as
begin
select MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan
from CUDAN
where YEAR( GETDATE())-YEAR(NgaySinh) < 30
end

exec BeHon_30Tuoi

Kết quả

Bảng 19: Thủ tục liệt kê những người bé hơn 30 tuổi

3.4. Tạo trigger


3.4.1. Tạo trigger bắt sự kiện thêm mới dữ liệu vào bảng Khu căn hộ
Câu lệnh :
create trigger ThemMoi on KHUCANHO for INSERT AS
BEGIN
PRINT(N'Đã thêm mới một khu căn hộ')
end
Thực hiện:
insert into KHUCANHO(MaKhu,TenKhu,SoTang,SoCanTT,DiaChi) values
(N'K16',N'AnLand3',30,15,N'Hà Đông')

Kết quả :

Bảng 20: Tạo trigger bắt sự kiện thêm mới dữ liệu vào bảng Khu căn hộ
3.4.2. Tạo trigger bắt sự kiện xóa dữ liệu bảng Khu căn hộ

17
Câu lệnh :
create trigger Xoa on KHUCANHO for DELETE as
begin
print(N'Đã xóa một khu căn hộ')
end
Thực hiện:
delete from KHUCANHO where MaKhu = N'K16'
Kết quả :

Bảng 21: Tạo trigger bắt sự kiện xóa dữ liệu bảng Khu căn hộ
3.4.3. Tạo trigger bắt sự kiện thêm mới cư dân vào bảng cư dân
Câu lệnh :
create trigger ThemMoi_CuDan on CUDAN for insert as
begin
print(N'Đã thêm một cư dân mới')
end
Thực hiện:
insert into
CUDAN(MaCuDan,TenCuDan,NgaySinh,GioiTinh,SoDT,SoCMT,QueQuan)
values (N'111130',N'Nguyễn Bá
Nam',N'1998/05/21',N'Nam','0965125879','0102015869',N'Lục Ngạn, Bắc Giang')

Kết quả :

Bảng 22: Tạo trigger bắt sự kiện thêm mới cư dân vào bảng cư dân
3.4.4. Tạo trigger bắt sự kiện Xóa cư dân trong bảng cư dân
Câu lệnh :
create trigger Xoa_CuDan on CUDAN for delete as
begin
print(N'Đã Xóa một cư dân')
end
Thực hiện:
delete from CUDAN where MaCuDan = N'111130'

18
Kết quả :

Bảng 23: Tạo trigger bắt sự kiện Xóa cư dân trong bảng cư dân
3.4.5. Tạo trigger bắt sự kiện thêm mới căn hộ
Câu lệnh :
create trigger Them_CanHo on CANHO for Insert as
begin
print(N'Đã thêm một căn hộ mới' )
end
Thực hiện:
insert into
CANHO(MaCanHo,DienTich,Gia,TrangThai,SoPhong,MaCuDan,MaKhu) values
(N'K15.1109',150,4600000000,N'Đã bán',5,N'111120',N'K15')

Kết quả :

Bảng 24: Tạo trigger bắt sự kiện thêm mới căn hộ

PHẦN 4 : KẾT LUẬN


4.1. Mục tiêu đạt
Nhóm đã đạt được mục tiêu ban đầu đề ra là xây dựng cơ sở dữ liệu quản lý chung cư,
thấy được tầm quan trọng của việc quản lý trong các khu chung cư hiện nay.
Thấy được cơ sở dữ liệu phải đảm bảo chính xác, mang tính toàn vẹn, thống nhất về
các mặt dữ liệu.
4.2. Mục tiêu chưa đạt
Dữ liệu thông tin còn hạn chế
4.3. Nhận xét đánh giá các thành viên trong nhóm

STT Tên thành viên Đánh giá


1 Đinh Văn Minh Hoàn thành tốt nhiệm vụ được phân công

19
2 Đồng Thanh Hải Minh Hoàn thành tốt nhiệm vụ được phân công
3 Hà Trương Nhật Nam Hoàn thành tốt nhiệm vụ được phân công
4 Nguyễn Hải Quang Hoàn thành tốt nhiệm vụ được phân công
5 Trần Danh Thái Hoàn thành tốt nhiệm vụ được phân công
6 Trần Đình Tuyên Hoàn thành tốt nhiệm vụ được phân công

DANH MỤC TÀI LIỆU THAM KHẢO


1. https://quantrimang.com/sql-cong-cu-quan-ly-csdl-dien-hinh-727
2. Ebook Giáo trình SQL - Trần Nguyên Phong (PDF)

20

You might also like