intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

BÀI TẬP THỰC HÀNH CƠ SỞ DỮ LIỆU

Chia sẻ: Tran Hien | Ngày: | Loại File: PDF | Số trang:44

135
lượt xem
22
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Khai báo thông tin kết nối: Server type: . Server name:

Chủ đề:
Lưu

Nội dung Text: BÀI TẬP THỰC HÀNH CƠ SỞ DỮ LIỆU

  1. Bài tập thực hành cơ sở dữ liệu: BÀI TẬP THỰC HÀNH CƠ SỞ DỮ LIỆU Buổi 1: Khởi động SQL server 2005 Start\Programs File\MicroSoft SQL Server 2005\SQL Server Management Studio Xuất hiện hộp thoại sau - Khai báo thông tin kết nối:  Server type:  Server name: 1
  2. Bài tập thực hành cơ sở dữ liệu:  Authentication: Chọn chế độ xác thực là Windows authentication hoặc SQL Server authentication. Nếu chọn chế độ là SQL Server authentication thì phải cho biết Login name (mặc định là sa) và Password. - Chọn Connect. Nếu kết nối thành công thì cửa sổ Microsoft SQL Server Management Studio xuất hiện 2
  3. Bài tập thực hành cơ sở dữ liệu: - Nhấn nút New Query Khi cài SQL Server xong, hệ thống sẽ tự động tạo một vài CSDL mặc định:  Master  Model  Tempdb  Msdb Sinh viên khảo sát một số thông tin trong các cơ sở dữ liệu có sẵn ở trên. Xem các CSDL bằng câu lệnh: SP_helpdb  Hai tập tin vật lý để lưu trữ dữ liệu: o Lưu trữ dữ liệu (data file) o Lưu trữ các giao tác mà người dùng đã thực hiện (transaction log file)  Các tập tin CSDL trong SQL Server được chia thành 3 loại tập tin.  Tập tin dữ liệu chính (Primary Data File). Phần mở rộng của tập tin này là *.mdf  Tập tin thứ yếu (Secondary Data Files) (không bắt buộc phải có khi tạo mới CSDL). Phần mở rộng của tập tin này là *.ndf 3
  4. Bài tập thực hành cơ sở dữ liệu:  Tập tin lưu trữ (Log Files). Phần mở rộng là *.ldf Các thuộc tính CSDL trong SQL Server  Tên CSDL (Database name): dài tối đa 128 ký tự, duy nhất trong SQL Server.  Vị trí tập tin (File location): Thông thường tập tin này sẽ được lưu tại C:\Program Files\Microsoft SQL Server\MSSQL\ Data  Tên tập tin (File name): là tên luận lý của mỗi loại tập tin dữ liệu tương ứng mà hệ thống SQL Server dùng để quản lý bên trong.  Kích thước ban đầu (Initial size): là kích thước khởi tạo của tập tin dữ liệu khi CSDL mới được tạo lập.  Tăng kích thước tập tin dữ liệu (File growth)  Kích thước tối đa tập tin dữ liệu (Maximun file size) Ví dụ: Tạo CSDL có tên QLSV với kích thước ban đầu là 50 MB, tự động tăng kích thước lên 10% khi dữ liệu đầy, kích thước tăng trưởng tập tin tối đa không quá 200MB. Và tập tin lưu vết với kích thước ban đầu lúc khởi tạo là 10MB, tự động tăng kích thước tập tin lên 5 MB khi dữ liệu bị đầy, kích thước tăng trưởng tập tin không giới hạn.  Cách 1: Tạo trong Query Analyzer (bằng câu lệnh) CREATE DATABASE QLSV ON PRIMARY (NAME = QLSV, FILENAME= ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\ QLSV.mdf’, SIZE=50MB, MAXSIZE = 200MB, FILEGROWTH = 10%, --Đường dẫn có thể thay đổi tùy theo từng máy LOG ON(NAME = QLSV_Log, FILENAME= ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\ QLSV_Log.ldf', SIZE=10MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB) --Đường dẫn có thể thay đổi tùy theo từng máy  Cách 2: Tạo trong Enterprise Manager (công cụ) Right_Click vào Database/New Database 4
  5. Bài tập thực hành cơ sở dữ liệu: Nhập tên CSDL vào Tên CSDL Click Sử dụng CSDL trên: USE QLSV Tạo một bảng đơn giản trong CSDL QLSV 5
  6. Bài tập thực hành cơ sở dữ liệu: CREATE TABLE LOP ( Malop char(6) NOT NULL, TenLop varchar(20) NOT NULL, SiSo smallInt NOT NULL ) Tạo cấu trúc bảng có giá trị mặc định CREATE TABLE LOP ( Malop char(6) NOT NULL, TenLop varchar(20) NOT NULL, SiSo smallInt Default 0 ) Tạo cấu trúc bảng có giá trị định danh CREATE TABLE LOP ( Malop int Identity(1000,5), TenLop varchar(20) NOT NULL, SiSo smallInt Default 0 ) Sinh viên quan sát và cho biết ý nghĩa của (1000,5) trong cột MaLop. Tạo bảng bằng Enterprise Manager  Right_click Tables/ New Table… 6
  7. Bài tập thực hành cơ sở dữ liệu: Tạo các cột cho bảng Kiểu dữ liệu Nhập tên thuộc tính Đặt tên bảng Thay đổi cấu trúc bảng Thêm cột vào bảng Ví dụ: Thêm cột Nien_khoa có kiểu dữ liệu int vào bảng LOP ALTER TABLE LOP ADD Nien_khoa int Sửa đổi kiểu dữ liệu của cột Ví dụ: Sửa kiểu dữ liệu của cột Nien_khoa thành kiểu char gồm 9 kí tự. 7
  8. Bài tập thực hành cơ sở dữ liệu: ALTER TABLE LOP ALTER COLUMN Nien_khoa char(9) Thay đổi tên cột Ví dụ: Thay đổi tên cột Nien_khoa thành khoa_hoc trong bảng LOP EXEC sp_rename ‘LOP.nien_khoa’, ‘khoa_hoc’, ‘COLUMN’ Hủy bỏ cột hiện có bên trong bảng Ví dụ: Xóa cột Nien_Khoa trong bảng LOP ALTER TABLE LOP DROP COLUMN Nien_khoa Thay đổi tên bảng Ví dụ: Thay đổi tên bảng LOP thành LOPHOC EXEC sp_rename ‘LOP’, ‘LOPHOC’ Sinh viên có thể tạo một cơ sở dữ liệu khác để thực tập. 8
  9. Bài tập thực hành cơ sở dữ liệu: Buổi 2: Tạo CSDL QLDACT (Quản lý đề án công ty) Create database QLDACT Go Use QLDACT Go Và tạo các bảng sau cho CSDL trên (chưa tạo RBTV): CREATE TABLE PB -- PHONG BAN ( Maphg INT NOT NULL, Tenphg VARCHAR(10), ma_nql CHAR(9), ng_nhanchuc DATETIME ); go CREATE TABLE NV - - NHANVIEN ( Manv CHAR(9) not null, Honv VARCHAR(15), Tenlot CHAR(15), Tennv VARCHAR(15), ngsinh DATETIME, dchi VARCHAR(30), phai CHAR(4), ma_nql CHAR(9), luong int , phg INT ); go 9
  10. Bài tập thực hành cơ sở dữ liệu: Create table DA -- DE AN ( Mada int not null, Tenda varchar(15) not null, Diadiem_da varchar(15), phong int ); go Create table PC -- PHAN CONG ( Ma_nvien char(9) not null, Mada int not null, Thoigian decimal(3,1) ); go Create table TN - - THAN NHAN ( Ma_nvien char(9) not null, Tentn char(10) not null, Phai char(3), Ngsinh datetime, Quanhe varchar(8) ); Go create table DD_P -- DIA DIEM PHONG ( Maphg int not null, Diadiem varchar(10) not null, ); Mở bảng NV thêm ràng buộc khóa ngoại. alter table NV add constraint NV_MaNV_PK primary key (MaNV) 10
  11. Bài tập thực hành cơ sở dữ liệu: Mở bảng PB thêm ràng buộc khóa chính, khóa ngoại vào. alter table PB add constraint pb_Maphg_pk primary key (Maphg), constraint ma_nql_fk foreign key (ma_nql) references Nv(manv) Xóa các bảng đã tạo drop table NV drop table PB Xóa luôn cơ sở dữ liệu vừa tạo drop database QLDACT A. Các quan hệ NHANVIEN (HONV, TENLOT, TENNV, MANV, NGSINH, DIACHI, PHAI, LUONG, MA_NQL, PHG) Mỗi nhân viên đều được ghi nhận lại Họ, Tên lót và Tên, có một mã duy nhất, có ngày sinh, địa chỉ, phái (giới tính), lương sẽ được phụ trách trực tiếp bởi một người quản lý (cũng là một nhân viên) và thuộc về một phòng ban duy nhất. THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE) Để quan tâm nhiều hơn đến các nhân viên, công ty sẽ ghi nhận một số thông tin về các thân nhân của các nhân viên. Tên, ngày tháng năm sinh và mối quan hệ của các thân nhân sẽ được ghi lại. PHONGBAN (TENPHG, MAPHG, TRPHG, NG_NHANCHUC) Mỗi phòng ban đều có mã duy nhất, có tên phòng, do một nhân viên nào đó phụ trách, và ghi nhận cả ngày trưởng phòng đó bắt đầu phụ trách phòng. DIADIEM_PHG (MAPHG, DD_P) Mỗi phòng ban có thể có một hay nhiều địa điểm. DEAN (TENDA, MADA, DD_DA, PHONG) Công ty sẽ thực hiện các đề án khác nhau. Do đó mỗi đề án đều ghi lại mã và tên đề án. Địa điểm thực hiện đề án cũng như phòng ban chủ trì đề án đều được ghi nhận. 11
  12. Bài tập thực hành cơ sở dữ liệu: PHANCONG (MA_NVIEN, SODA, THOIGIAN) Mỗi nhân viên có thể tham gia vào nhiều đề án khác nhau, và mỗi đề án có thể được nhiều nhân viên tham gia. Khi nhân viên tham gia đề án, thì mã nhân viên đó, mã đề án đó cũng như thời gian làm việc của nhân viên cho đồ án trong một tuần sẽ được ghi lại. B. Mô tả chi tiết: PHONGBAN(MAPHG, TENPHG, TRPHG, NGNC) STT Thuộc tính Kiểu dữliệu Diễn giải 1 MAPHG Số nguyên Mã phòng ban 2 TENPHG Chuỗi (100) Tên phòng ban 3 TRPHG chuỗi (9) Mã nhân viên trưởng phòng 4 NG_NHANCHUC Ngày (mm/dd/yyyy) Ngày nhận chức NHANVIEN (HONV, TENLOT, TENNV, MANV, NGSINH, DIACHI, PHAI, LUONG, MA_NQL, PHG) STT Thuộc tính Kiểu dữ liệu Diễn giải 1 MANV Chuỗi(9) Mã khoa 2 HONV Chuỗi (15) Tên sinh viên 3 TENLOT Chuỗi (15) Năm học hiện tại 4 TENNV Chuỗi (15) Mã khoa 5 NGSINH Ngày (mm/dd/yyyy) Ngày sinh 6 PHAI Chuỗi(4) Phái: Nam, Nữ 7 DCHI Chuỗi (50) Địa chỉ của nhân viên 8 MA_NQL Chuỗi (9) Mã người quản lý 9 PHG Số nguyên Mã phòng ban 10 LUONG Số thực Mức lương 12
  13. Bài tập thực hành cơ sở dữ liệu: DEAN(MADA, TENDA, DDIEM_DA, PHONG) STT Thuộc tính Kiểu dữ liệu Diễn giải 1 MADA Số nguyên Mã đề án 2 TENDA Chuỗi (50) Tên đề án 3 DD_DA chuỗi (50) Địa điểm diễn ra đề án 4 PHONG Số nguyên Mã phòng quản lý đề án PHANCONG(MA_NVIEN, SODA, THOIGIAN) STT Thuộc tính Kiểu dữ liệu Diễn giải 1 MA_NVIEN Chuỗi (9) Mã nhân viên 2 SODA Số nguyên Mã đề án 3 THOIGIAN Số thực Thời gian làm việc trong 1 đề án của nhân viên DIADIEM_PHG(MAPHG, DIADIEM) STT Thuộc tính Kiểu dữliệu Diễn giải 1 MAPHG Số nguyên Mã phòng ban 2 DD_P Chuỗi (30) Địa điểm của phòng ban THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE) STT Thuộc tính Kiểu dữliệu Diễn giải 1 MA_NVIEN Chuỗi (9) Mã nhân viên 2 TENTN Chuỗi (30) Tên thân nhân 3 PHAI Chuỗi (4) Phái: Nam, Nữ 4 NGSINH Ngày (mm/dd/yyyy) Ngày sinh 5 QUANHE Chuỗi (10) Mối quan hệ của thân nhân với nhân viên 13
  14. Bài tập thực hành cơ sở dữ liệu: C. Sơ đồ quan hệ của lược đồ 14
  15. Bài tập thực hành cơ sở dữ liệu: D. Thể hiện của lược đồ quan hệ NHANVIEN HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG Nguyen Bao Hung 123456789 09/01/1965 73 Phan Dang Luu, Nam 30000 333445555 5 Phu Nhuan, TpHCM Phan Van Nghia 333445555 08/12/1955 63 Tran Huy Lieu, Nam 40000 888665555 5 Phu Nhuan, TpHCM Au Thi Vuong 999887777 19/01/1968 32 Cao Ba Nha, Q1, Nu 25000 987654321 4 TpHCM Du Thi Hau 987654321 20/06/1941 29 Bach Dang, Tan Nu 43000 888665555 4 Binh, TpHCM Tran Van Nam 666884444 15/09/1962 97 Dien Bien Phu, Nam 38000 333445555 5 Binh Thanh, TpHCM Hoang Kim Yen 453453453 31/07/1972 56 Thich Quang Duc, Nu 25000 333445555 5 Phu Nhuan, TpHCM Nguyen Van Giap 987987987 29/03/1969 98 Huynh Van Banh, Nam 25000 987654321 4 Phu Nhuan, TpHCM Le Van Bo 888665555 10/11/1937 45 Ho Van Hue, Phu Nam 55000 null 1 Nhuan, TpHCM PHONGBAN TENPHG MAPHG TRPHG NG_NHANCHUC DIADIEM_PHG MAPHG DIADIEM Nghien cuu 5 333445555 22/06/1988 1 Phu Nhuan Hanh chinh 4 987654321 01/01/1995 4 Go Vap Giam doc 1 888665555 19/06/1981 5 Tan Binh 5 Phu Nhuan 5 Thu Duc THANNHAN DEAN MA_NVIEN TENTN PHAI NGSINH QUANHE TENDA MADA DDIEM_DA PHONG 333445555 Anh Nu 05/04/1986 Con gai San pham X 1 Tan Binh 5 333445555 The Nam 25/10/1983 Con trai San pham Y 2 Thu Duc 5 333445555 Loi Nu 03/05/1958 Vo San pham Z 3 Phu Nhuan 5 987654321 An Nam 28/02/1942 Chong Tin hoc hoa 10 Go Vap 4 123456789 Minh Nam 04/01/1988 Con trai Tai to chuc 20 Phu Nhuan 1 123456789 Anh Nu 30/12/1988 Con gai Phuc loi 30 Go Vap 4 123456789 Yen Nu 05/05/1967 Vo 15
  16. Bài tập thực hành cơ sở dữ liệu: PHANCONG MA_NVIEN SODA THOIGIAN MA_NVIEN SODA THOIGIAN MA_NVIEN SODA THOIGIAN 123456789 1 32.5 333445555 2 10.0 999887777 10 10.0 123456789 2 7.5 333445555 3 10.0 987987987 10 35.0 666884444 3 40.0 333445555 10 10.0 987987987 30 5.0 453453453 1 20.0 333445555 20 10.0 987654321 30 20.0 453453453 2 20.0 999887777 30 30.0 987654321 20 15.0 888665555 20 null 16
  17. Bài tập thực hành cơ sở dữ liệu: Tạo lại CSQL QLDACT và tạo các bảng bao gồm tất cả các ràng buộc toàn vẹn (khóa chính, khóa ngoại, check, default, unique,…), mỗi ràng buộc đều có đặt tên cho nó. GVHD thực hành chỉ cho sinh viên cách tạo khóa chính, khóa ngoại bằng Enterprise Manager. create database QLDACT go use QLDACT go CREATE TABLE PB ( maphg INT constraint PB_Maphg_PK primary key, tenphg VARCHAR(10) constraint PB_Tenphg_UQ UNIQUE, ma_nql CHAR(9), ng_nhanchuc DATETIME default (getdate()) ); go CREATE TABLE NV ( Manv CHAR(9) constraint NV_MaNV_PK primary key, Honv VARCHAR(15) NOT NULL, Tenlot CHAR(15), Tennv VARCHAR(15) NOT NULL, Ngsinh DATETIME, Dchi VARCHAR(30), Phai CHAR(4) constraint NV_Phai_CK CHECK (phai IN ('Nam', 'Nu')), ma_nql CHAR(9) constraint NV_Ma_nql_Fk foreign key (ma_nql) references NV(Manv), Luong int , Phg INT constraint NV_phg_Fk foreign key (phg) references PB(Maphg) ); go 17
  18. Bài tập thực hành cơ sở dữ liệu: 18
  19. Bài tập thực hành cơ sở dữ liệu: Create table DA ( Mada int constraint DA_MaNV_PK primary key, Tenda varchar(15) not null, Diadiem_da varchar(15), Phong int constraint DA_phong_Fk foreign key (phong) references PB(Maphg) ); go Create table PC ( Ma_nv char(9) not null, Mada int not null, Thoigian decimal(3,1) , constraint PC_MaNV_Mada_PK PRIMARY KEY (Ma_nv, Mada), constraint PC_Ma_nv_Fk FOREIGN KEY (ma_nv) REFERENCES NV (manv), constraint PC_Mada_Fk FOREIGN KEY (mada) REFERENCES DA (mada) ); go Create table TN ( Ma_nv char(9) not null, Tentn char(10) not null, Phai char(3) constraint TN_Phai_CK CHECK (phai IN ('Nam', 'Nu')), Ngsinh datetime , Quanhe varchar(10) , constraint TN_Ma_nv_Tentn_Fk PRIMARY KEY (Ma_nv, TENTN), constraint TN_Ma_nv_Fk FOREIGN KEY (ma_nv) REFERENCES NV (manv) ); go 19
  20. Bài tập thực hành cơ sở dữ liệu: create table DD_P ( Maphg INT NOT NULL, Diadiem varchar(10) not null, constraint DD_P_Maphg_Diadiem_pk primary key (maphg, diadiem), constraint DD_P_Maphg_Fk FOREIGN KEY (maphg) REFERENCES PB(maphg) ); Mở bảng PB ra thêm ràng buộc khóa ngoại cho thuộc tính ma_nql. alter table PB add constraint PB_ma_nql_Fk foreign key (ma_nql) references NV(manv) Cho cơ sở dữ liệu QLSV như sau: A. Các quan hệ • Khoa(Makh, TenKH) -- Khoa Mỗi Khoa có một mã số duy nhất (MAKH) để phân biệt với các khoa khác. Xác định một tên Khoa (TenKh) duy nhất • SV(MASV,TEN,NAM,KHOA) – Sinh viên Mỗi sinh viên có một mã số sinh viên (MASV) để phân biệt với các sinh viên khác. Mỗi sinh viên có tên sinh viên (TEN), đăng ký học một khoa và năm học hiện tại (NAM) là một trong các năm từ 1 đến 4. • MH( MAMH,TENMH, TINCHI, KHOA) –Môn học Mỗi mônhọc có một mã số (MAMH) để phân biệt với các môn học khác, tên mônhọc (TENMH) không trùng lắp nhau. Mỗi môn học do một khoa (KHOA) phụ trách và có số tín chỉ quy định (TINCHI). • DK (MAMH, MAMH_TRUOC) – Điều kiện Mỗi mônhọc (MAMH) có thể không có, có một hay nhiều môn học bắt buộc phải học trước (MAMH_TRUOC) 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2