You are on page 1of 27

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÀI TẬP LỚN MÔN CƠ SỞ DỮ LIỆU

ĐỀ BÀI: QUẢN LÝ ĐẦU TƯ CHỨNG KHOÁN


THÔNG QUA APP XTB

Lớp : INT13128-20231-01

Nhóm : 07

Thành viên : 1. Vũ Mạnh Hoạch - B22DCTC043


2. Nguyễn Đình Đức– B22DCTC031
3. Nguyễn Hoàng Đồng– B22DCTC030
4. Đỗ Huy Quân– B22DCTC085
5. Nguyễn Diệu Hằng – B22DCTC037

Giảng viên : Trần Quốc Khánh


MỤC LỤC

LỜI GIỚI THIỆU :...................


I/PHÂN TÍCH BÀI TOÁN
1.1. Mô tả

1.2. Phân tích chi tiết bài toán

II/THIẾT KẾ HỆ THỐNG CƠ SỞ DỮ LIỆU


2.1. Xác định các tập thực thể và thuộc tính các tập thực thể

2.2. Xác định mối liên hệ giữa các tập thực thể

2.3. Mô hình thực thể liên kết E R

III/THIẾT KẾ LƯỢC ĐỒ QUAN HỆ


—Chuẩn hóa dữ liệu:
IV/THIẾT KẾ Ở MỨC VẬT LÝ
4.1. Thiết kế ở mức vật lí cho bảng

4.2. Quan hệ giữa các bảng

4.3. Database diagram

V/TẠO BẢNG
5.1. Tạo bảng trong SQL
5.2. Nhập dữ liệu cho bảng
VI/TRUY VẤN

LỜI CẢM ƠN:...........................


TÀI LIỆU THAM KHẢO:....................
LỜI GIỚI THIỆU

Thị trường chứng khoán đã chứng kiến sự gia nhập mạnh mẽ của các nhà đầu từ thế hệ mới,
nhạy bén với công nghệ và luôn đề cao yếu tố trải nghiệm đầu tư khi lựa chọn công ty chứng
khoán để giao dịch. Việc có được trải nghiệm xuyên suốt, mượt mà và những tiện ích đầu tư vượt
trội trên các nền tầng số là điều mà khách hàng quan tâm hàng đầu.

Để đáp ứng kịp thời các nhu cầu đó, các công ty chứng khoán đã nhanh chóng tập trung đầu tư
tham gia vào đường đua chuyển đổi số để thu hút và giữ chân nhóm khách hàng này. Để có thể
"vươn lên" trong cuộc đua này thì một điểm chung của các công ty chứng khoán hàng đầu là
luôn đặt trải nghiệm của nhà đầu tư làm trọng tâm cho chiến lược chuyển đổi số. Theo đó, các
công ty chứng khoán này đã không ngừng nâng cao trải nghiệm đầu tư trên các nền tảng số: đảm
bảo sự liền mạch, xuyên suốt, cũng như giúp nhà đầu tư có thể cá nhân hóa trải nghiệm.

Quản lý app đầu tư chứng khoán là một chủ đề mới và thu hút sự quan tâm trong sql nên đây là lí
do chúng em chọn làm đề tài này.
I/PHÂN TÍCH BÀI TOÁN:
1.1/MÔ TẢ BÀI TOÁN

Nghiệp vụ bài toán được mô tả dựa trên những trải nghiệm về hệ thống Đầu tư chứng khoán
thông qua app XTB.

Người dùng sử dụng app XTB thông qua Tài Khoản Chứng Khoán. Tài Khoản Chứng Khoán
được lập sẽ lưu trong CSDL của APP bao gồm (Mã TKCK, Tên đăng nhập, Mật khẩu, Loại tài
khoản, Thời gian tạo, Trạng thái tài khoản). Tài Khoản Chứng Khoán được lập giúp người dùng
giao dịch Chứng Khoán một cách dễ dàng với các thông tin Chứng Khoán cụ thể: (Mã chứng
khoán; Tên chứng khoán; Giá chứng khoán(mua/bán); Loại chứng khoán; Giá thị trường)

Tài Khoản Chứng Khoán sau khi được lập sẽ liên kết với Hồ Sơ Người Dùng với những
thông tin cụ thể: (Mã hồ sơ; Họ tên ND, Địa chỉ , Email, SĐT, CCCD)

Tài Khoản Ngân Hàng với các thông tin: (Số tài khoản; Tên ngân hàng, Lịch sử giao dịch; Số
dư; Loại tiền tệ) được sử dụng để tài trợ cho Tài khoản chứng khoán . Khi người dùng đặt lệnh
giao dịch, tiền sẽ được rút từ tài khoản ngân hàng của họ và khi họ đặt lệnh bán, số tiền thu được
sẽ được gửi lại vào tài khoản ngân hàng. Thông tin về loại lệnh(mua/bán),số lượng chứng khoán
được giao dịch, mã số chứng khoán, thời gian ra vào lệnh được chỉ rõ.

Thông qua Hồ Sơ Người Dùng sẽ theo dõi được Danh Mục Đầu Tư trong app gồm các thông
tin về chứng khoán mà người dùng sở hữu, yêu thích và theo dõi (Mã Danh mục; Tên chứng
khoán; Loại chứng khoán; Số lượng từng loại chứng khoán; Giá(mua/bán); Loại tiền tệ; Giá thị
trường). Thông qua APP người dùng sẽ theo dõi được Dữ liệu Thị Trường để dễ dàng quyết định
đầu tư.

1.2/ PHÂN TÍCH CHI TIẾT BÀI TOÁN:

Nghiệp vụ bài toán chủ yếu liên quan tới đầu tư chứng khoán thông qua app XTB.
● Hồ Sơ Người Dùng và Tài Khoản Chứng Khoán
■ Lưu trữ thông tin về tài khoản Ngân Hàng: Số tài khoản; Lịch sử giao
dịch; Số dư; Loại tiền tệ.
■ Xác định các thông tin người dùng được lưu trữ: Mã hồ sơ; Họ tên ND,
Địa chỉ , Email, SĐT, CCCD.
● Dữ Liệu Chứng Khoán:
■ Lưu trữ thông tin về chứng khoán: Mã chứng khoán; Tên chứng khoán;
Giá chứng khoán(mua/bán); Loại chứng khoán; Giá thị trường.
● Giao Dịch và Lưu Trữ Lịch Sử: Thông tin về loại lệnh(mua/bán), Số lượng chứng khoán
được giao dịch, Mã số chứng khoán, Thời gian ra vào lệnh và trạng thái lệnh được chỉ rõ.
II/ THIẾT KẾ HỆ THỐNG CƠ SỞ DỮ LIỆU

2.1/ CÁC THỰC THỂ VÀ THUỘC TÍNH CỦA THỰC THỂ:

STT THỰC THỂ THUỘC TÍNH


Mã chứng khoán
Tên chứng khoán
1 CHỨNG KHOÁN Giá chứng khoán(mua/bán)
Loại chứng khoán
Giá thị trường

Mã hồ sơ
Họ tên ND
2 HỒ SƠ NGƯỜI DÙNG Địa chỉ
Email
SĐT
CCCD

Tên đăng nhập


Mã TKCK
Mật khẩu
TÀI KHOẢN CHỨNG KHOÁN Loại tài khoản
3
Thời gian tạo
Trạng thái tài khoản

Mã danh mục
Tên chứng khoán
Loại chứng khoán
DANH MỤC ĐẦU TƯ Số lượng từng loại chứng khoán
4
Giá(Mua/bán)
Loại tiền tệ
Dữ liệu thị trường

Số tài khoản
5 TÀI KHOẢN NGÂN HÀNG Tên ngân hàng
Số dư
Loại tiền tệ
Lịch sử giao dịch
2.2/XÁC ĐỊNH MỐI QUAN HỆ

1.MQH giữa Tài Khoản Chứng Khoán và Tài Khoản Ngân Hàng:

- Một Tài Khoản Chứng Khoán có thể liên kết với nhiều Tài Khoản Ngân Hàng.

2.MQH giữa Tài Khoản Chứng Khoán và Hồ Sơ Người Dùng:

-Một Tài Khoản Chứng Khoán sẽ liên kết với Một Hồ Sơ Người Dùng

3.MQH giữa Tài Khoản Chứng Khoán và Chứng Khoán


- Một Tài Khoản Chứng Khoán có thể giao dịch nhiều Chứng Khoán
4.MQH giữa Tài Khoản Chứng Khoán và Danh Mục Đầu Tư:

-Mỗi Tài Khoản Chứng Khoán cho ra Một Danh Mục Đầu Tư

2.3/ SƠ ĐỒ ERD:
III/ THIẾT KẾ LƯỢC ĐỒ QUAN HỆ:
CHUẨN HÓA CƠ SỞ DỮ LIỆU

❖ TAIKHOANCHUNGKHOAN

F = {MATKCK → TENDN, MATKHAU, LOAITK, TGT, TTTK}

Với LOAITK, TTTK là thuộc tính lặp

● Loại LOAITK, TTTK ra khỏi TAIKHOANCHUNGKHOAN (MATKCK, TENDN,


MATKHAU, TGT)
● Tạo lược đồ mới LOAITK (MATKCK, LOAITK); TTTK (MATKCK, TTTK)
➔ Lược đồ đạt chuẩn 1NF
➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF

❖ TAIKHOANNGANHANG

F = {STK → SODU, LOAITIENTE, MATKCK}

Với LOAITIENTE là thuộc tính lặp

● Loại LOAITIENTE ra khỏi TAIKHOANNGANHANG (STK, SODU, MATKCK)


● Tạo lược đồ mới LOAITIENTE (STK, LOAITIENTE)
➔ Lược đồ đạt chuẩn 1NF
➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF

❖ HOSONGUOIDUNG

F = {MAHOSO → TENND, SDT, DIACHI, CCCD, EMAIL, MATKCK}

Với DIACHI là thuộc tính lặp

● Loại DIACHI ra khỏi HOSONGUOIDUNG (MAHOSO, TENND, SDT, CCCD, EMAIL,


MATKCK)
● Tạo lược đồ mới DIACHI (MAHOSO, DIACHI)
➔ Lược đồ đạt chuẩn 1NF
➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF
❖ CHUNGKHOAN

F = {MACK → TENCK, GIAMUA, GIABAN, LOAICK, GIATHITRUONG,


MATKCK}

Với LOAICK là thuộc tính lặp

● Tách LOAICK ra khỏi CHUNGKHOAN (MACK, TENCK, GIAMUA, GIABAN,


GIATHITRUONG, MATKCK)
● Tạo lược đồ mới LOAICK (MACK, LOAICK)
➔ Lược đồ đạt chuẩn 1NF
➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF

❖ DULIEUTHITRUONG

F = {MABV, MACK → NGAYDANG}

➔ Lược đồ đạt chuẩn 1NF


➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF

❖ DANHMUCDAUTU

F = { MADM → MATKCK, TENCK, LOAICK, SLCK, GIACK, LOAITIENTE,


GIATHITRUONG, MACK, MBV, TRANGTHAI}

➔ Lược đồ đạt chuẩn 1NF


➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF

❖ GIAODICH

F = {MATKCK, MACK → LOAILENH, THOIGIANGD, SLCK, TRANGTHAI}

➔ Lược đồ đạt chuẩn 1NF


➔ Lược đồ đạt chuẩn 2NF
➔ Lược đồ đạt chuẩn 3NF
➔ Lược đồ đạt chuẩn BCNF
IV/THIẾT KẾ Ở MỨC VẬT LÝ

4.1.THIẾT KẾ MỨC VẬT LÝ CHO BẢNG :

Tài Khoản Chứng Khoán

Tên Trường Kiểu dữ liệu Constraint Null Description

MATKCK int khoá chính Mã tài khoản chứng


khoán

TENDN varchar(50) NOTNULL Tên đăng nhập

MATKHAU varchar(50) NOTNULL Mật khẩu

LOAITK nvarchar(50) Loại tài khoản


(vd: thường,ký quỹ, phái
sinh)

TGT date Thời gian tạo tài khoản

TTTK varchar(10) Trạng thái tài khoản (vd:


online/offline)

Tài Khoản Ngân Hàng

Tên Trường Kiểu dữ liệu Constraint Null Description

STK int khoá chính Số tài khoản

SODU char(20) Số dư tài khoản

LOAITIENTE char(10) Loại tiền tệ (vd


VND;USD…)

MATKCK int Khoá ngoại NOT NULL Mã tài khoản chứng


khoán
Hồ Sơ Người Dùng

Tên Trường Kiểu dữ liệu Constraint Null Description

MAHOSO char(10) khoá chính Mã hồ sơ

TENND nvarchar(50) Họ tên người dùng

SĐT int NOTNULL số điện thoại

DIACHI nvarchar(50) Địa chỉ

CCCD int Căn cước công dân

EMAIL varchar(100) NOTNULL email

MATKCK int Khoá ngoại Mã tài khoản chứng khoán

Chứng Khoán

Tên Trường Kiểu dữ liệu Constraint Null Description

MACK char(10) khoá chính NOTNULL Mã chứng khoán

TENCK nvarchar(200) NOTNULL Tên chứng khoán

GIAMUACK decimal(18,2) NOTNULL Giá mua chứng khoán

GIABANCK decimal(18,2) NOTNULL Giá bán chứng khoán

LOAICK nvarchar(20) Loại chứng khoán (vd:cổ


phiếu,trái phiếu,chứng chỉ
quỹ trái phiếu)

GIATHITRUONG decimal(18,2) NOTNULL Giá mà chứng khoán được


giao dịch lần đầu tiên
trong phiên giao dịch hiện
tại

MATKCK int khoá ngoại Mã tài khoản chứng khoán


Danh Mục Đầu Tư

Tên Trường Kiểu dữ liệu Constraint Null Description

MADM char(10) khoá chính Mã danh mục

MATKCK int khoá ngoại Mã tài khoản chứng


khoán

TENCK varchar(200) NOTNULL Tên chứng khoán


người dùng đang quan
tâm/sở hữu

LOAICK nvarchar(200) NOTNULL Loại chứng khoán


người dùng đang quan
tâm/sở hữu

SLCK int Số lượng từng loại


chứng khoán người
dùng đang quan
tâm/sở hữu

GIACK decimal(18,2) NOTNULL Giá CK

TRANGTHAI nvarchar(20) Trạng thái (Đã mua/Đã


bán)

LOAITIENTE varchar(10) Loại tiền tệ (vd


VND;USD…)

GIATHITRUONG decimal(18,2) NOTNULL Giá mà chứng khoán


được giao dịch lần đầu
tiên trong phiên giao
dịch hiện tại

MACK char(10) khoá ngoại NOTNULL Mã chứng khoán


người dùng đang quan
tâm/sở hữu

MABV char(10) khoá ngoại Mã bài viết, thông tin


về chứng khoán
Giao Dịch

Tên Trường Kiểu dữ liệu Constraint Null Description

MACK char(10) Khoá ngoại NOTNULL Mã chứng khoán đang


được giao dịch

LOAILENH nvarchar(20) NOTNULL loại lệnh (vd: sell/buy)

THOIGIANGD datetime Thời gian đặt lệnh giao


dịch

SLCK varchar(200) Số lượng chứng khoán


đang được giao dịch

TRANGTHAI nvarchar(20) NOTNULL Trạng thái giao dịch (ví dụ:


pending; executed;
canceled)

Dữ Liệu Thị Trường

Tên Trường Kiểu dữ liệu Constraint Null Description

MABV char(10) khoá chính NOTNULL Mã bài viết

MACK char(10) khoá ngoại NOTNULL Mã chứng khoán mà bài


viết đề cập đến

NGAYDANG datetime Ngày đăng bài


4.2.QUAN HỆ CỦA CÁC BẢNG:

4.3.DATABASE DIAGRAM:
V.TẠO BẢNG

5.1 TẠO BẢNG TRONG SQL

1.Tạo bảng Tài Khoản Chứng Khoán:

2.Tạo bảng Danh Mục Đầu Tư:


3. Tạo bảng Dữ Liệu Thị Trường:

4.Tạo bảng Giao Dịch:

5.Tạo bảng Hồ Sơ Người Dùng:


6.Tạo bảng Chứng Khoán:

7.Tạo bảng Tài Khoản Ngân Hàng:

5.2.NHẬP DỮ LIỆU CHO BẢNG:

1.Dữ liệu bảng Tài Khoản Chứng Khoán:


2.Dữ liệu bảng Hồ Sơ Người Dùng:

3.Dữ liệu bảng Tài Khoản Ngân Hàng:

4.Dữ liệu bảng Giao Dịch:


5.Dữ liệu bảng Danh Mục Đầu Tư:

6.Dữ liệu bảng Chứng Khoán:


7.Dữ liệu bảng Dữ Liệu Thị Trường:

VI. TRUY VẤN:


Câu 1: HIỂN THỊ CÁC LỆNH GIAO DỊCH MUA VỚI TRẠNG THÁI PENDING:

-Biểu diễn bằng Đại Số quan hệ:

σLOAILENH=”MUA” ^ TRANGTHAI=’PENDING’ (GIAODICH)


-Truy vấn bằng SQL:

Câu 2: Đưa ra thông tin gồm: MATKCK;TENND;TTTK;LOAITK;MAHS với


LOAITK thường:

-Biểu diễn bằng Đại Số quan hệ:


π (σ
MATKCK,TENND,TTTK,LOAITK,MAHS LOAITK=”thường”(TAIKHOANCHUNGKHOAN

⋈TAIKHOANCHUNGKHOAN.MATKCK=HOSONGUOIDUNG.MATKCK HOSONGUOIDUNG))

-Truy vấn bằng SQL:


Câu 3: Tìm ra Mã CK mà được Mua nhiều nhất trong 1 tháng.
Câu 4: Top 5 khách hàng đặt lệnh mua nhiều nhất trong 1 tháng.

Câu 5: Top 3 Mã CK được đầu tư nhiều nhất và có nhiều bài viết nhất.
****Câu lệnh truy vấn trong SQL****

----TRUY VẤN CÂU 1:


SELECT*FROM GIAODICH
WHERE LOAILENH='MUA'
AND TRANGTHAI='PENDING'
----TRUY VẤN CÂU 2:
SELECT
TAIKHOANCHUNGKHOAN.MATKCK,
TAIKHOANCHUNGKHOAN.LOAITK,
TAIKHOANCHUNGKHOAN.TTTK,
HOSONGUOIDUNG.TENND,
HOSONGUOIDUNG.MAHOSO
FROM TAIKHOANCHUNGKHOAN
INNER JOIN HOSONGUOIDUNG ON
TAIKHOANCHUNGKHOAN.MATKCK=HOSONGUOIDUNG.MATKCK
WHERE LOAITK=N'thường'
---TRUY VẤN CÂU 3:
SELECT TOP 1
SUM(CONVERT(INT, GIAODICH.SLCK)) AS SLCKGD,
GIAODICH.MACK
FROM GIAODICH
WHERE MONTH(THOIGIANGD) = '10' AND LOAILENH = 'MUA'
GROUP BY GIAODICH.MACK
ORDER BY SLCKGD DESC
--TRUY VẤN CÂU 4:
SELECT
HOSONGUOIDUNG.TENND,
COUNT(*) AS SLLENHMUA,
RANK()OVER(ORDER BY COUNT(*) DESC)AS RANK
FROM TAIKHOANCHUNGKHOAN
INNER JOIN GIAODICH ON
GIAODICH.MATKCK=TAIKHOANCHUNGKHOAN.MATKCK
INNER JOIN HOSONGUOIDUNG ON
HOSONGUOIDUNG.MATKCK=TAIKHOANCHUNGKHOAN.MATKCK
WHERE LOAILENH='MUA' AND MONTH(THOIGIANGD)='10' AND RANK<=5
GROUP BY
HOSONGUOIDUNG.TENND
----TRUY VẤN CÂU 5:
SELECT
COUNT(*) AS SoBaiViet,
DANHMUCDAUTU.MACK,
SUM(CONVERT(INT, DANHMUCDAUTU.SLCK)) AS SLCKGD,
RANK() OVER (ORDER BY SUM(CONVERT(INT, DANHMUCDAUTU.SLCK)) DESC)
AS RANK
FROM
DANHMUCDAUTU
GROUP BY
DANHMUCDAUTU.MACK
LỜI CẢM ƠN:

"Đầu tiên, em xin gửi lời cảm ơn chân thành đến Học viện Công nghệ Bưu
chính viễn thông đã đưa môn học “Cơ sở dữ liệu” vào trương trình giảng dạy. Đặc
biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn – Thầy Trần Quốc
Khánh đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian
học tập vừa qua.

Trong thời gian tham gia lớp học Cơ sở dữ liệu của thầy, em đã có thêm cho
mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc
chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này.

Bộ môn Cơ sở dữ liệu là môn học có tính ứng dụng cao và khó do đặc trưng
là môn chuyên ngành. Do đó, kiến thức và bài tập của môn học là rất rộng và sâu,
cần nhiều thời gian tự học và tìm tòi để hoàn thiện được bài tập lớn . Mặc dù em đã
cố gắng hết sức nhưng chắc chắn bài tập lớn của nhóm em khó có thể tránh khỏi
những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong cô xem xét và góp ý
để bài tập lớn của nhóm chúng em được hoàn thiện hơn.

Chúng em xin chân thành cảm ơn!”


TÀI LIỆU THAM KHẢO:

1/https://123docz.net/document/2608937-bai-tap-lon-mon-co-so-du-lieu-xay-
dung-co-so-du-lieu-su-dung-cho-quan-ly-thu-vien.htm

2/https://official.xtb.com/brand?utm_source=google&utm_medium=cpc&ut
m_campaign=google_search_ads_branding&utm_term=xtb&utm_content=br
and_acc1&gclid=CjwKCAiA1MCrBhAoEiwAC2d64VcARW5_UnmqqZhel
KzBt8POvMqvZI6G9j7DqjeR0xZr1iomLjxyWBoCBMUQAvD_BwE&gad_
source=1

3/https://www.youtube.com/watch?v=xvy4c1fpYvQ&t=3696s

4/ Sử dụng CHAT GPT

You might also like