Cài đặt CSDL và xác định khóa chính, khóa ngoại trong dự án Quản lý sinh viên

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

5.0 (13 đánh giá)
Tạo bởi K9 Cập nhật lần cuối 20:49 29-10-2021 44.430 lượt xem 24 bình luận
Tác giả/Dịch giả: K9
Học nhanh

Danh sách bài học

Cài đặt CSDL và xác định khóa chính, khóa ngoại trong dự án Quản lý sinh viên

Dẫn nhập

Ở bài trước, chúng ta đã cùng nhau PHÂN TÍCH ĐẶC TẢ DỰ ÁN QUẢN LÝ SINH VIÊN . Qua đó, bạn đã có thể hiểu được thực tế cách phân tích đặc tả dự án đa chiều; truy ngược, chất vấn phân tích đặc tả; sơ lược cách vẽ ER tóm gọn khi nhận yêu cầu từ khách hàng.

Ok! đó là tổng quan về bài trước, ở bài này chúng ta sẽ tiếp tục cùng nhau thực chiến với dự án Quản lý sinh viên. Kteam sẽ hướng dẫn kỹ hơn về cách vẽ ER tóm gọn và cùng bạn Cài đặt CSDL và xác định khóa chính, khóa ngoại trong dự án Quản lý sinh viên

Chúng ta hãy cùng nhau teamwork, thảo luận và hỗ trợ nhau trong dự án này để giải quyết  bài toán thực tế một cách hoàn chỉnh dưới sự hướng dẫn của anh Kim Long - founder Howkteam nhé! 

Nhớ cài phần mềm nha! 


Nội dung

Để theo dõi bài này một cách tốt nhất, bạn nên có kiến thức về các phần:

Trong bài này, Kteam sẽ cùng các bạn tìm hiểu các nội dung:

  • Giải quyết câu hỏi của bài trước
  • Hướng dẫn vẽ nhanh ERD (nên thực hiện trên giấy)
  • Hướng dẫn cài đặt database trên Sql Server
  • Cài đặt khóa chính, khóa ngoại
  • Các phần chia sẻ kinh nghiệm thực tế

Phần mềm sử dụng

Trong khóa học này, chúng ta sẽ học và thực hành trực tiếp với SQL Server. Nếu bạn chưa cài đặt SQL thì có thể xem qua bài 

Bạn cũng có thể sử dụng các phiên bản khác từ 2008 trở lên. (vì không có nhiều khác biệt)


Hướng dẫn vẽ nhanh ERD

Ở đầu bài, mình đã nói rõ hơn về cách phân tích ra lược đồ ER tóm gọn khi nhận yêu cầu từ khách hàng.  Xuất phát từ kinh nghiệm cá nhân của mình và team trong quá trình làm việc thực tế, vì vậy có thể nó sẽ khác nhiều so với lược đồ ER mà bạn được học trên trường. 

Bạn có thể xem qua đặc tả dự án và bảng phân tích đặc tả quản lý sinh viên trong bài PHÂN TÍCH ĐẶC TẢ DỰ ÁN QUẢN LÝ SINH VIÊN

Ghi chú: các đặc tả và tài liệu sử dụng trong khóa học được donate từ một member của Kteam có nguồn tham khảo tại tài liệu Cơ sở dữ liệu - Khoa toán tin / Đại học Đà Lạt do cô Tạ Thị Thu Phượng biên soạn. 

Dưới đây là lược đồ ER mà mình đã hướng dẫn trong livestream. Bạn nên tự vẽ lại một cái từ phân tích đặc tả đã có ở bài trước nhé!


Cài đặt CSDL và xác định khóa trên SQL Server

Phần này khá đơn giản với các bạn đã học qua khóa SỬ DỤNG SQL SERVER. Tuy nhiên, nó cũng sẽ không khó nếu bạn tiếp cận bài này lần đầu tiên, chỉ cần để ý những lưu ý mình nhắc đến trong quá trình tạo database, tạo khóa...

create database Quan_Ly_Sinh_Vien
go

use Quan_Ly_Sinh_Vien
go

create table Khoa
(
	Ma_Khoa varchar(10) primary key, -- 13248   KTCC126  123
	Ten_Khoa nvarchar(100), -- thêm n để viết được unicode
	Nam_Thanh_Lap int
)
go

create table Khoa_Hoc
(
	Ma_Khoa_Hoc varchar(10) primary key, 
	Nam_Bat_Dau int,
	Nam_Ket_Thuc int
)

create table Chuong_Trinh_Hoc
(
	Ma_CT varchar(10) primary key,
	Ten_CT nvarchar(100)
)
go

create table Lop
(
	Ma_Lop varchar(10) primary key,
	Ma_Khoa varchar(10) not null,
	Ma_Khoa_Hoc varchar(10) not null,
	Ma_CT varchar(10) not null,
	STT int

	foreign key(Ma_Khoa) references Khoa(Ma_Khoa),
	foreign key(Ma_Khoa_Hoc) references Khoa_Hoc(Ma_Khoa_Hoc),
	foreign key(Ma_CT) references Chuong_Trinh_Hoc(Ma_CT)
)
go

create table Sinh_Vien
(
	MaSV varchar(10) primary key,
	Ho_Ten nvarchar(100),
	Nam_Sinh int,
	Dan_Toc nvarchar(20),
	Ma_Lop varchar(10) not null

	foreign key(Ma_Lop) references Lop(Ma_Lop)
)
go

create table Mon_Hoc
(
	MaMH varchar(10) primary key,
	Ma_Khoa varchar(10) not null,
	TenMH nvarchar(100)

	foreign key(Ma_Khoa) references Khoa(Ma_Khoa)
)
go

create table Ket_Qua
(
	MaSV varchar(10) not null,
	MaMH varchar(10) not null,	
	Lan_Thi int not null,
	Diem_Thi float

	primary key(MaSV, MaMH, Lan_Thi),

	foreign key(MaSV) references Sinh_Vien(MaSV),
	foreign key(MaMH) references Mon_Hoc(MaMH)
)
go

create table Giang_Khoa
(
	Ma_CT varchar(10) not null,
	Ma_Khoa varchar(10) not null,	
	MaMH varchar(10) not null,
	Nam_Hoc int not null,
	Hoc_Ky int,
	STLT int,
	STTH int,
	So_Tin_Chi int

	primary key(Ma_CT, Ma_Khoa, MaMH,Nam_Hoc),

	foreign key(Ma_CT) references Chuong_Trinh_Hoc(Ma_CT),
	foreign key(Ma_Khoa) references Khoa(Ma_Khoa),
	foreign key(MaMH) references Mon_Hoc(MaMH)
)
go

Kết

Trong bài này, chúng ta đã cùng nhau tìm hiểu cách cài đặt CSDL lên SQL của dự án quản lý sinh viên. 

Ở bài sau, chúng ta sẽ NHẬP DỮ LIỆU VÀ THỰC HÀNH TRUY VẤN ĐƠN GIẢN VỚI CSDL DỰ ÁN QLSV TRÊN SQL SERVER.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó” 


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Cài đặt CSDL và xác định khóa chính, khóa ngoại trong dự án Quản lý sinh viên dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả/Dịch giả

K9

Nhà sáng lập Howkteam.com, KQuiz.vn & tác giả các khóa học C#, Auto, Unity3D, Python....

Với mong muốn mang đến kiến thức chất lượng, miễn phí cho mọi người, với tâm huyết phá bỏ rào cản kiến thức từ việc giáo dục thu phí. Tôi đã cùng đội ngũ Kteam đã lập nên trang website này để thế giới phẳng hơn.
Hãy cùng chúng tôi lan tỏa kiến thức đến cộng đồng! 

Khóa học

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

sql, kteam, howkteam,cơ sở dữ liệu, bài tập cơ sở dữ liệu

Trong các khóa học SỬ DỤNG SQL SERVER PHÂN TÍCH THIẾT KẾ PHẦN MỀM, Kteam đã đề cập đến các kiến thức cần thiết để bạn có thể bắt đầu xây dựng một cơ sở dữ liệu với SQL server và truy vấn qua CSDL đó.

Ở combo Thực chiến SQL, chúng ta sẽ cùng nhau phân tích các CSDL đó từ đặc tả và ứng dụng các kiến thức đã học ở hai khóa trên vào việc giải quyết các yêu cầu thực tế của một CSDL. Trong bộ khóa học này các bạn sẽ đi qua các kiến thức từ cơ bản đến nâng cao qua các dự án khác nhau.

Nào! Chúng ta sẽ cùng nhau tìm hiểu dự án đầu tiên THỰC CHIẾN SQL CÙNG DỰ ÁN QUẢN LÝ SINH VIÊN

Đánh giá

Nguyễn Đình Dũng đã đánh giá 15:19 03-08-2023

Vo Tan Duc đã đánh giá 10:16 03-04-2022

Hay quá anh ơi. Em quen giọng anh rồi. Mong anh ra nhiều series thực chiến về phần mềm, sql, tool,...

DongTV đã đánh giá 07:33 28-07-2021

h_a_i_13 đã đánh giá 21:57 25-12-2020

Hungsokk đã đánh giá 10:35 27-10-2020

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Hungsokk đã bình luận 10:34 27-10-2020

ahiuhiu làm hồi k thấy dấu gạch chân đỏ.chuối cùng f5 phát đỏ nửa màn hình

Tuan Le đã bình luận 01:19 10-11-2019

Bảng MON_HOC đã có khóa ngoại MA_KHOA rồi vậy tại sao bảng GIANG_KHOA vừa có MA_MON_HOC lại vừa có MA_KHOA nữa. Có phải bị dư không.

ngocdungduong đã bình luận 15:57 26-07-2019

website ngày càng đẹp <3

nay lại còn có thêm mục tin tức công nghệ nữa <3

Nói chung là ủng hộ và chúc Kteam cố lên

trantran12c đã bình luận 21:41 19-07-2019

anh ơi ví dụ:  giờ mình cần phải lưu lại lịch sử thay đổi của 1 đối tượng

ví dụ như: 1 người đăng ký tên chủ công ty là như thế này nhưng sau đó có người khác làm chủ công ty đó (sang tên hay gì gì đó) thì người ta đổi tên làm chủ của công ty với 1 tên mới thì làm sao mình lưu lại lịch sử để mai mốt có thể truy ra công ty đó lúc trước có người kia đứng tên rồi mới tới người này.? em muốn biết làm sao lưu lại lịch sử được mình phải thiết kế csdl như thế nào (anh nói chi tiết dùm em)  hay có những link hướng dẫn làm giống vầy anh chỉ cho em được không? vì em đang làm niên luận

sontran đã bình luận 20:56 15-07-2019

thanks a kim long nhiều nha, nhờ có a nên càng ngày e càng học được nhiều hơn hehe

 

Không có video.