PHẦN I: MỞ ĐẦUGiới thiệu về phần mền SQL PHẦN II :BÀI TOÁNMô tả bài toán quản lý bất động sản thao tác lập bảng tạo bảng Ứng dụng các thao tác trong SQL trong bài toán:1.Câu lênh SELECT2.Khung nhìn VIEW3.Ràng buộc CHECK4.Thủ tục proc5.Hàm FUNTION6.TRIGGER7.Kết nối dữ liệu:
Trang 1PHẦN I: MỞ ĐẦU
Bất động sản từ lâu đã gắn liền với cuộc sống của mọi người dân trong xã hội Cùng với sự phát triển nhanh chóng của các khu vực kinh tế,thị trường bất động sản ngày càng được hình thành và phát triển với tốc độ nhanh Một công ty bất động sản sẽ bao gồm nhiều hoạt động Để có thể quản lý tốt cần có một hệ cơ sở dữ liệu cụ thể, chi tiết tránh
bỏ sót các thông tin hoặc trùng lặp gây rối trong quá trình quản lý Để phục vụ cho việc quản lý trên nhóm em đã nghiên cứu và thực hiện đề tài: Xây dựng cơ sở dữ liệu của một công ty bất động sản
Giới thiệu về phần mền SQL
SQL server là gì?
SQL Server là viết tắt của Structure Query Language,nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậc cao đều có trình
hỗ trợ SQL như Visual BASic,Oracle,Visual C
Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng những ứng dụng đó khi chạy phải sử dụng SQL
Lịch sử phát triển
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDL lớn
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các máy đơn lẻ Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ
Trang 2(Server)) Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ) Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn Nó được sử dụng để nhanh chóng tạo các trang Web động
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy
có sự khác nhau rõ ràng giưã các SQL
Đặc điểm của SQL Server
- SQL là ngôn ngữ tựa tiếng Anh
- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế nào Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi
- SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
+ Chèn, cập nhật, xoá các hàng trong một quan hệ
+ Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
+ Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL
+Đảm bảo tính nhất quán và sự ràng buộc của CSDL
- Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình
Đối tượng làm việc của SQL Server
Là các bảng ( tổng quát là các quan hệ )dữ liệu hai chiêù Các bảng này bao gồm một hoặc nhiều cột và hàng.Các cột gọi là các trường ,các hàng gọi là các bản ghi.Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc
Trang 3của bảng (Ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của
bảng ,phần tuỳ chọn[] có thể được bỏ trong Oracle).Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL
PHẦN II :BÀI TOÁN
Mô tả bài toán quản lý bất động sản
Công ty bất động sản
Cơ sở dữ liệu gồm bốn bảng lưu thông tin về: nhân viên, khách hàng, bất động sản, hợp đồng
Bảng nhân viên lưu những thông tin về nhân viên của công ty: mã nhân viên, họ tên nhân viên, ngày sinh, quê quán giới tính, có khóa chính là mã nhân viên
Bảng khách hàng lưu những thông tin về khách hàng: mã khách hàng, họ tên khách hàng, ngày sinh, địa chỉ, có khóa chính là mã khách hàng
Bảng bất động sản lưu thông tin về bất động sản: mã bát động sản, diện tích, địa chỉ,gia, có kháo chính là mã bất động sản
Bảng hợp đồng lưu trữ các thông tin các hợp đồng đã ký của công ty: mã hợp đồng, mã nhân viên, mã khách hàng, mã bất động sản, ngày lập, tổng tiền
Liên kết bảng:
Bảng bất động sản liên kết với bảng nhân viên thông qua khóa ngoại mã nhân viên Một nhân viên có thể quản lý nhiều hợp đồng Một hợp đồng chỉ có một nhân viên quản lý
Bảng bất động sản liên kết với bảng khách hàng thông qua khóa ngoại mã khách hàng Một khách hàng có thể có nhiều hợp đồng Một hợp đồng chỉ bao gồm một khách hàng
Trang 4Bảng bất động sản liên kết với bảng bất động sản qua khóa ngoại mã bất động sản Một hợp đồng có thể có nhiều bất động sản Mỗi bất động sản chỉ có thể nằm trên một hợp đồng
Lập bảng
CREATE TABLE NHANVIEN(
maNV int PRIMARY KEY,
hotenNV nvarchar(30) not null,
ngaysinh date not null,
gioitinh bit notnull,
quequan nvarchar(100),
);
CREATE TABLE KHACHHANG(
maKH int PRIMARY KEY,
hotenKH nvarchar(30)not null,
diachi nvarchar(100)not null,
namsinh date not null,
);
CREATE TABLE BATDONGSAN(
maBDS int PRIMARY KEY,
dientich decimal not null,
diachi nvarchar(50),
gia money not null,
);
CREATE TABLE HOPDONG(
maHD int PRIMARY KEY,
maNV int,
CONSTRAINT fk_NV_HD FOREIGN KEY (maNV) REFERENCES
NHANVIEN(maNV),
maKH int,
CONSTRAINT fk_KH_HD FOREIGN KEY (maKH) REFERENCES
KHACHHANG(maKH),
maBDS int,
CONSTRAINT fk_BDS_HS FOREIGN KEY (maBDS) REFERENCES
BATDONGSAN(maBDS),
ngaylap datetime not null,
sotien money not null,
);
Trang 5Thông tin trong bảng:
NHANVIEN
maN
KHACHHANG
BATDONGSAN
Trang 6312 50 Dong Da 1 500 000 000
HOPDONG
Ứng dụng các thao tác trong SQL trong bài toán:
1 Câu lênh SELECT
Yêu cầu 1: Hiển thị danh sách khách hàng đã mua BDS có diện tích trên 70
select k.maKH, k.hotenKH, b.maBDS, b.dientich
Trang 7from KHACHHANG k innerjoin HOPDONG h on k.maKH=h.maKH innerjoin BATDONGSAN b on h.maBDS=b.maBDS
where dientich>70
Yêu cầu 2: Đếm số nhân viên có quê quán ở Ha Noi:
selectCOUNT(maNV)
from NHANVIEN
where quequan like'Ha Noi'
2 Khung nhìn VIEW
Trang 8Yêu cầu 1 : Tạo khung nhìn cho bảng khách hàng
create view xemkh
as
select kh.maKH , kh.diachi , hd.ngaylap , hd.sotien
from KHACHHANG as kh inner join HOPDONG as hd on kh.maKH = hd.maKH
Yêu cầu 2 : Xóa khung nhìn
DROP VIEW xemkh
3 Ràng buộc CHECK
CREATE TABLE NHANVIEN (
maNV int PRIMARY KEY,
hotenNV nvarchar(30) not null,
ngaysinh date not null,
gioitinh bit notnull,
quequan nvarchar(100), constraint chk_gioitinh check( true = nam or fasle = nu), )
Trang 94 Thủ tục proc
yêu cầu 1: Thêm dữ liệu vào bảng NhânViên
createproc [dbo].[themNV]
@maNV int,
@hotenNV nvarchar (30),
@ngaysinh date,
@gioitinh bit,
@quequan nvarchar(100)
as
insert NHANVIEN values(@manv,@hotennv,@ngaysinh,@gioitinh,@quequan)
Trang 10Execute themNV'116','TranHaiNinh','01/20/1994','true','Hai Duong'
Câu lệnh chọn BẤT ĐỘNG SẢN
5 Hàm FUNTION
- Yêu cầu 1: đưa ra bảng thông tin về các bất động sản có mã bất động sản bằng với mã bất động sản nhập vào từ bàn phím
- Câu lệnh:
Create function f_chonBDS
( @maBDS char (10))
Returns table
As
Return ( select * from BATDONGSAN
Where maBDS=@maBDS )
Trang 11- Thực hiện hàm:
Mở Query mới
Select * from f_chonBDS (‘315’)
Yêu cầu 2: sửa hàm , xóa hàm
Câu lệnh:
Alter function f_chonBDS
(@maBDS int)
Returns table
As
Return ( select * from BATDONGSAN
Trang 12Where maBDS = @maBDS)
Drop function f_chonBDS
6 TRIGGER
Yêu cầu 1: Trigger cập nhật địa chỉ “Ha Noi” cho mã khách hàng ‘ 213’ CREATETRIGGER t_suadiachikh
on KHACHHANG
after UPDATE
AS
Begin
select*from KHACHHANG
end
Trang 13Chạy.
update KHACHHANG set diachi='Ha Noi'where maKH ='213'
Kết quả.
Yêu cầu 2: Trigger chèn thêm một khách hàng mới có mã khách hàng là “221”,
họ tên “Nguyen Thi Lan”, địa chỉ “Nam Dinh”, năm sinh “2/2/1988”
CREATETRIGGER t_ttkh
on KHACHHANG
forinsert
as
begin
declare @maKH int
declare @hotenKH nvarchar(30)
declare @diachi nvarchar(100)
declare @namsinh datetime
select*From KHACHHANG
end
go
Chạy.
insertinto KHACHHANG values('221','Nguyen Thi Lan','Nam Dinh','2/2/1989')
Kết quả.
Trang 147 Kết nối dữ liệu: