Bài viết giúp các bạn tìm hiểu về CSDL Oracle, cách kết nối Oracle lên Winform C và demo chương trình mình họa. Thực hiện truy vấn dữ liệu ứng dụng trên 2 máy tính khách nhau thông qua SQL developer. Tìm hiểu được truy vấn trên Tablespaces, Session:Sử dụng shutdown startup để tắt và mở databaseTạo người dùng user, nhóm quyền, phân quyền trên ứng dụngSao lưu và phục hồi nhất quán, không nhất quánXây dựng các giao dịch có sử dụng các mức cô lập tùy chọnSử dụng kiểu dữ liệu LOB đưa hình ảnh và âm thanhThực hiện audit dữ liệu tự động bằng trigger.
Trang 1TRƯỜNG ĐH CÔNG NGHIỆP THỰC PHẨM
Nhóm sinh viên thực hiện: 07
BIÊN BẢN
Thống nhất kết quả làm việc nhóm: 07
Môn: Hệ quản trị CSDL Oracle
PHẦN MỀM QUẢN LÝ BÁN HÀNG VĂN PHÒNG PHẨM
Tân Phú, tháng 9/ 2020
Trang 2Chúng tôi được giảng viên giao thực hiện đồ án: Nguyễn Phương Hạc
ST
T
1 Giới thiệu và mô tả nội dung đề tài
2 Mô tả các nhóm quyền, quyền và profile
3 Thiết kế giao diện ứng dụng
4 Mô tả các giao tác trong đề tài
5 Thiết kế cơ sở dữ liệu
1 Khảo sát mục tiêu và phạm vi đề tài
2 Phân tích và thiết kế mô hình quan hệ
3 Mô tả các chức năng truy vấn, tìm kiếm
4 Mô tả các yêu cầu ràng buộc
5 Chức năng xem SGA, PGA, Session
6 Tìm hiểu kết nối ứng dụng với Oracle
7 Tìm hiểu và tạo database bằng dbca
Trang 3Đặng Quốc Hải
TUẦN 1 KHẢO SÁT HIỆN TRẠNG VÀ PHÂN TÍCH YÊU CẦU
1 Giới thiệu chung về đề tài
Ngày nay, công nghệ thông tin có những bước phát triễn mạnh mẽ, trong đó phải
kể đến các ứng dụng phần mềm Một số công việc làm bằng thủ công đã dẫn đến việctốn sức, tốn công lại hao tốn quá nhiều thời gian nên dần dần được chuyển sang hệthống tự động hóa Từ đó đem lại sự thuận tiện trong công việc cho con người cũngnhư góp phần làm cho hoạt động mua bán mang tính chuyên nghiệp và đạt hiệu quảhơn Kết quả của nhu cầu thực tế đó là sự ra đời của nhiều phần mềm, công cụ quản lý
và xử lý các công việc thay cho con người như trước đây
Trong quản lý cửa hàng văn phòng phẩm, với số lượng các mặt hàng ngày càng đadạng và phong phú về cả chủng loại cũng như nhà sản xuất Do đó, việc xây dụngphần mềm “Quản lý cửa hàng văn phòng phẩm” giúp cho người bán dể dàng quản lýtình tình mua bán cũng như tình trạng hàng hóa trong cửa hàng Đây là một công cụcần thiết và hiệu quả, giúp cho quản lý công việc dể dàng hơn, tiết kiệm thời gian vàcông sức đáng kể
Cũng tương tự như một siêu thị mini, cửa hàng văn phòng phẩm cửa đề tài đặt ra làmột cửa hàng loại nhỏ, kinh doanh lưu trữ đủ mọi thể loại hàng hóa và bày bán đủnhững thứ cần thiết như đồ dùng học tâp, văn phòng phẩm Với nhiều loại mặt hàngkhông đồng nhất về thể loại khiến cho việc quản lý một cửa hàng văn phòng phẩmkhông phải là điều dể dàng, thậm chí nếu không có cách thức quản lý phù hợp sẻ gây
ra các nhầm lẫn và thất thoát hàng hóa không đáng có Do vậy, để giúp các chủ cửahàng có được sự quản lý chặt chẽ và doanh thu và đem lại sự phục vụ cho khách hàngmột các tốt nhất có thể, phần mềm quản lý cửa hàng văn phòng phẩm tích hợp cácchức năng dành riêng cho chửa hàng văn phòng phẩm và được nhiều cửa hàng hưởngứng, đưa vào ứng dụng một cách hiệu quả
2 Phạm vi và mục tiêu đề tài
a Mục tiêu đề tài
Trang 4Mục tiêu của đề tài đặt ra là xây dựng hệ thống quản lý cửa hàng văn phòng phẩm,
hỗ trợ cho việc quản lý thông tin các mặt hàng, thông tin nhân viên, thông tin khách hàng và hỗ trợ cửa hàng có được phong cách làm việc chuyên nghiệp, quản lý hiệu quả các hoạt động kinh doanh sản phẩm văn phòng, hướng tới hình ảnh, phong cách
phục vụ Văn minh - Lịch sự - Hiện đại đến khách hàng, tạo một ưu thế cạnh tranh
trước các đối thủ trong ngành
b Phạm vi đề tài
Đề tài được xây dựng cho cửa hàng quản lý văn phòng phẩm quy mô vừa và nhỏ
Đồ án được thực hiện trên cơ sở môn: Công nghệ NET, hệ quản trị cơ sở dữ liệuOracle với sự hỗ trợ: Visual Studio 2013, Oracle Database 19c
3 Mô tả nội dung đề tài
a Cơ cấu tổ chức và cách thức hoạt động
Chủ cửa hàng: Chịu trách nhiệm điều hành chung của cửa hàng Kiểm tra các hoạt
động mua bán của nhân viên, hoạt động xuất nhập kho Lên kế hoạch nhập văn phòngphẩm khi cần thiết và liên hệ với các nhà cung cấp
Nhân viên bán hàng: Làm việc trực tiếp với khách hàng, chăm sóc khách hàng, kiểm
tra số lượng tồn và hóa đơn hằng ngày, ghi chép hóa đơn bán hàng
Cách thức hoạt động:
của khách hàng, số lượng hàng hóa tối thiểu, số lượng hàng tồn trong kho để lập
kế hoạch nhập hàng hóa
nhan viên sẻ in hóa đơn thanh toán cho khách hàng Đối với khách hàng muavới số lượng lớn, chủ cửa hàng sẻ ký kết hợp đồng với khách hàng sau đó xuấthàng hóa cho khách hàng khi đã thanh toán đầy đủ số tiền
hoạt động của cửa hàng, nộp hóa đơn đã bán được và sổ của cửa hàng cho chủcửa hàng
b Xác định bài toán
Input:
tồn, đơn giá nhập, đơn giá bán)
Trang 5 Các thông tin về nhân viên ( Mã nhân viên, họ tên, điện thoại, chức vụ, địa chỉ )
Các thông tin về nhà cung cấp ( Mã nhà cung cấp, tên nhà cung cấp, điện thoại )
đơn giá, khách hàng )
đơn giá nhập, nhà cung cấp )
Ouput:
c Các chức năng bài toán
Xây dựng chưng trình quản lý cửa hàng văn phòng phẩm bằng ngôn ngữ C# Chương trình gồm các chức năng sau:
Nhập hàng: Khi nhập hàng thì cần tìm nhà cung cấp để đặt hàng, việc đặt hàng
thành công Nhân viên nhập hàng đó vào trong kho và thực hiện thanh toán tiềncho nhà cung cấp Sau đó tiến hành thống kê, sắp xếp, phân loại hàng hóa theotừng nhóm hàng, đơn giá
Xuất hàng: Khách hàng lựa chọn hàng hóa, sau đó đặt hàng Nhân viên chấp nhận
đơn hàng mà khách hàng đã chọn và tiến hành nhập vào đơn hàng Khách hàngthanh toán tiền, nhân viên cập nhập lại kho hàng và thống kê lại lượng hàng trongkho
Thống kê: Sau mỗi tháng nhân viên sẽ quản lý việc thống kê tháng đó nhập những
loại hàng nào, và chi phí của việc nhập là bao nhiêu Tương tự như vậy nhân viêncũng quản lý được việc xuất hàng Thông qua thống kê nhập và xuất sẽ tính đượcdoanh thu tháng đó lời hay lỗ
Trang 64 Bảng mô tả các yêu cầu ràng buộc
ST
T
Thuộc tính tên phải riêng biệt, không được trùng
Thuộc tính giới tính chỉ thuộc nam hoặc nữ
Đơn giá nhập hàng <= đơn giá bán
Tuổi của nhân viên làm phải >=18
Cho biết có bao nhiêu hóa đơn được lập trong ngày/tháng đó
hàng có địa chỉ ở Tân Phú?
Cho biết tên sản phẩm có số lượng tồn lớn nhất?
Trang 76 Bảng mô tả các danh mục nhóm quyền, quyền, profile trong đồ án
3
Profile
Chỉ định thời gian khóa tài khoản đăng nhập sai là 1 ngày
7 Bảng mô tả các giao tác được cài đặt trong đồ án
- Khi thêm 1 sản phẩm từ nhà cung cấp vào cửa hàng thì
số lượng tồn của sản phẩm đó trong kho phải tăng thêm 1
- Khi thêm 1 sản phẩm mà số lượng tồn của sản phẩm trong kho không thay đổi thì giao tác sẽ bị hủy
-8 Phân tích và thiết kế mô hình quan hệ
Trang 89 Thiết kế giao diện hệ thống, giao diện chức năng
a Giao diện hệ thống
Trang 9b Giao diện chức năng
Trang 10 Form nhà cung cấp
Trang 11 Form hóa đơn nhập
Trang 12TUẦN 2 KẾT NỐI ỨNG DỤNG
1 Kết nối ứng dụng Winform với Oracle
a Thêm thư viện Oracle
Bước 1: Truy cập vào trang web: https://www.nuget.org/packages/Oracle.ManagedDataAccess
Trang 13Bước 2: Mở visual studio lên, vào Tools => Nuget Packege Manager
Bước 3: Click chuột phải vào Solution, chọn Manager Nuget Packages
Trang 14public void ketnoi()
Trang 15Lưu ý: Để thực hiện kết nối, chúng ta tắt Fileware trước
Thay đổi địa chỉ IP của 2 máy tính minh họa như hình
Tiến hành kết nối bằng cách thay host: localhost thành host: 181.103.21.3
2 Thực hiện các lệnh trên SQLPlus và Sqldeloper
Trang 17 Thực hiện các lệnh cơ bản trên SQLDeverlop
3 Thiết kế màn hình đăng nhập với các user khác nhau
a Màn hình kết nối
Trang 18b Code đăng nhập
public Boolean kiemtraketnoi()
{
String pass = txtpass.Text.Trim();
String port = txtPort.Text.Trim();
String host = txtHost.Text.Trim();
String user = cboUsername.SelectedItem.ToString().Trim();
String oracle = @"Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =
"+host+")(PORT ="+port+"))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME
return true ;
}
public static String taikhoan = matkhau = "";
private void btnConn_Click( object sender, EventArgs e)
MessageBox Show("Đăng nhập thất bại, Sai tên người dùng hoặc mậtkhẩu",
"Thông báo đăng nhập thất bại", MessageBoxButtons OKCancel, MessageBoxIcon Error);
cboUsername.Text = "";
txtpass.Text = "";
}
}
4 Thiết kế chức năng hệ thống với nhiều lựa chọn
a Tạo file kết nối Oracle
namespace _09_DAMH_QuanLyCuaHangVPP_Oracle
{
class KetNoiOracle
{
public OracleConnection sqlcon;
public OracleCommand sqlcom;
public OracleDataAdapter sqlda;
public OracleDataReader sqldr;
public DataSet ds = new DataSet ();
Trang 19string strconnect= "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST
=localhost)(PORT =1523))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME
Trang 21ketnoi();
sqlcom = new OracleCommand (strsql, sqlcon);
sqldr = sqlcom.ExecuteReader();
while (sqldr.Read())
{
if (sqldr[0].ToString().ToLower() == dauvao.ToLower()) ok = true ; }
ngatketnoi(); return ok; }
public DataTable ExecuteQuery( string query, object [] parameter = null ) {
DataTable data = new DataTable (); using ( OracleConnection connection = new OracleConnection (strconnect)) {
connection.Open(); OracleCommand command = new OracleCommand (query, connection); if (parameter != null ) {
string [] listPara = query.Split( ' ' ); int i = 0; foreach ( string item in listPara) {
if (item.Contains( '@' )) {
command.Parameters.Add(item, parameter[i]); i++;
}
}
}
OracleDataAdapter adapter = new OracleDataAdapter (command); adapter.Fill(data); connection.Close(); }
return data; }
public void loatextbox( TextBox tb, string strselect, byte chiso) {
ketnoi(); sqlcom = new OracleCommand (strselect, sqlcon); sqldr = sqlcom.ExecuteReader(); while (sqldr.Read()) {
tb.Lines[0] = (sqldr[chiso].ToString()); }
ngatketnoi();
Trang 23d Form chức năng
Trang 24 Chức năng xem Instance
Trang 25TUẦN 3 THIẾT KẾ CÁC CHỨC NĂNG
1 Thiết kế các chức năng xem control file, data file, online redo log file
a Thực hiện trên sqlplus/ sqldeveloper
Trang 27 Data file
Online redo log file
2 Liệt kê các tablespace hiện có, tìm kiếm thông tin liên quan đến tablespace
Trang 28 Liệt kê các tablespace hiện có
Tìm kiếm thông tin liên quan đến tablespace
Trang 29( Nhập số TS# hoặc NAME vào textbox Tablespace để tìm kiếm)
3 Liệt kê các datafile hiện có, tìm kiếm các datafile liên quan đến một tablespace
OracleDataAdapter fillstud = new OracleDataAdapter ( "Select * from v$datafile Where FILE# ='" + txtData.Text + "' OR CREATION_CHANGE#='" + txtData.Text + "'" , con);
DataTable dt = new DataTable ();
fillstud.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
} }
Trang 30 Liệt kê các datafile hiện có
Tìm kiếm các datafile liên quan (tìm kiếm theo FILE#)
4 Tạo mới, xóa một tablespace (xóa cả datafile và không xóa datafile)
MessageBox Show( "Thêm thành công tablespace" );
DataTable bang1 = ketnoi.ExecuteQuery( "Select * From v$Tablespace" );
Trang 31DataTable bang1 = ketnoi.ExecuteQuery( "Select * From v$Tablespace" );
dataGridView1.DataSource = bang1;
}
b Giao diện
5 Thêm, xóa một datafile vào một tablespace
a Source code
private void btnThem_Click( object sender, EventArgs e)
{
con.Open();
OracleCommand insert = new OracleCommand ( "Alter Tablespace '" + txtData.Text +
"' ADD Datafile '" +txtData.Text+ "'.dat' Size 10M Autoextend On" , con);
insert.ExecuteNonQuery();
fillStud();
con.Close();
}
Trang 32b Giao diện
6 Xem thông tin liên quan đến parameter file
8 Mở database
Trang 33 Thực hiện trên ứng dụng ( nhóm chưa thực hiện được)
9 Xem thông tin liên quan đến alert log
// Thực thi button tìm kiếm từ điển dữ liệu khi nhập vào textbox
private void btnIDic_Click_1( object sender, EventArgs e)
{
if ((txtTuDien.Text == "" ) || (txtTuDien.Text == "Nhập vào từ khóa tìm kiếm" ))
Trang 34DataTable dt = new DataTable ();
Xem thông tin các từ điển dữ liệu
Trang 35TUẦN 4 TẠO DATABASE VÀ PHÂN QUYỀN
1 Sử dụng dbca tạo database có tên là tên đồ án
Trang 422 Thiết kế giao diện tạo mới một, chỉnh sửa, xóa profile với một số thông tin được nhóm chọn lọc (ít nhất là 5 thông tin) và hiển thị lên giao diện cho người
sử dụng chọn lựa các thông tin đó
a) Thực hiện trên Sqlplus
MessageBox Show( "Thêm thành công" );
}
c) Thiết kế giao diện
Trang 433 Thiết kế giao diện thêm mới, xóa, chỉnh sửa một tablespace và các datafile tương ứng với tablespace
MessageBox Show( "Xóa thành công tablespace" );
DataTable bang1 = ketnoi.ExecuteQuery( "Select * From v$Tablespace" );
}
b) Thiết kế giao diện
Trang 444 Thiết kế giao diện tạo mới, thêm, xóa nhóm quyền, quyền
5 Thiết kế giao diện tạo, chỉnh sửa, xóa người dùng.
a) Thực hiện trên sqlplus
b) Code
c) Giao diện
Trang 456 Thiết kế giao diện cấp quyền/ nhóm quyền và thu hồi quyền/nhóm quyền
7 Thiết kế tạo, bật, tắt, xóa các chính sách audit dữ liệu của một hoặc vài loại dữ liệu nào đó
BÀI TẬP TUẦN 5
1 Hiển thị các session đang giữ khóa, xóa các session trong danh sách chọn
a Code
KetNoiOracle ketnoi = new KetNoiOracle ();
private void btnHienThi_Click( object sender, EventArgs e)
Trang 46TUẦN 6 + TUẦN 7 TRUY VẤN DỮ LIỆU
p
d Bảng nhà cung cấp
ST
T
Trang 472 TenNCC Nvarchar(50) Tên nhà cung cấp
e Bảng phiếu nhập
ST
T
f Bảng chi tiết phiếu nhập
ST
T
g Bảng hóa đơn
ST
T
h Bảng chi tiết hóa đơn
ST
T
Trang 483 SoLuong Int Số lượng bán
2 Lệnh tạo bảng
a Bảng khách hàng
CREATE TABLE KHACHHANG
(
MaKH Char(10) NOT NULL,
TenKH Nvarchar2(50) NULL,
DiaChi Nvarchar2 (50) NULL,
MaSP Char(10) NOT NULL,
TenSP Nvarchar2(50) NULL,
SoLuongTon Int NULL,
DonGiaNhap Integer NULL,
DonGiaBan Integer NULL,
GhiChu Nvarchar2(50) NULL,
CONSTRAINT PK_SanPham PRIMARY KEY (MaSP) );
c Bảng nhân viên
CREATE TABLE NHANVIEN
(
MaNV Char(10) NOT NULL,
TenNV Nvarchar2(50) NULL,
GioiTinh Nvarchar2(3) NULL,
Luong Integer ,
ChucVu Nvarchar2(50),
DiaChi Nvarchar2(50) NULL,
SoDT Number(10) NULL,
NgaySinh Date NULL,
CONSTRAINT PK_NHANVIEN PRIMARY KEY (MaNV) );
d Bảng nhà cung cấp
Trang 49CREATE TABLE NHACUNGCAP
(
MaNCC Char (10) NOT NULL,
TenNCC Nvarchar2(50) NULL,
SDT NUMBER(10) NULL,
DiaChi Nvarchar2(50) NULL,
CONSTRAINT PK_NHACUNGCAP PRIMARY KEY (MaNCC)
);
e Bảng phiếu nhập
CREATE TABLE PHIEUNHAP
(
SoPhieu Char(10) NOT NULL,
MaNV Char(10) NULL,
NgayNhap Date NULL,
MaNCC Char(10) NULL,
TongTien Integer NULL,
CONSTRAINT PK_PN PRIMARY KEY (SoPhieu),
CONSTRAINT FK_PN_NV FOREIGN KEY (MaNV) REFERENCES NHANVIEN(MaNV), CONSTRAINT FK_PN_NhaCC FOREIGN KEY (MaNCC) REFERENCES
NHACUNGCAP(MaNCC)
);
f Bảng chi tiết phiếu nhập
CREATE TABLE CTPHIEUNHAP
(
SoPhieu Char(10) NOT NULL,
MaSP Char(10) NOT NULL,
SoLuong Int NULL,
DonGia Integer NULL,
GiamGia Integer NULL,
ThanhTien Integer NULL,
CONSTRAINT PK_CTHDN PRIMARY KEY (MAHDN, MAH),
CONSTRAINT FK_CTHDN_PN FOREIGN KEY (SoPhieu) REFERENCES
MaHD Char(10) NOT NULL,
MaNV Char(10) NULL,
NgayBan Date NULL,
Trang 50MaKH Char(10) NULL,
TongTien Integer NULL,
CONSTRAINT PK_HD PRIMARY KEY (MaHD)
CONSTRAINT FK_HD_NV FOREIGN KEY (MaNV)
MaHD Char(10) NOT NULL,
MaSP Char(10) NOT NULL,
SoLuong int NULL,
DonGia integer NULL,
GiamGia Integer NULL,
ThanhTien Integer NULL,
CONSTRAINT PK_CTHD PRIMARY KEY (MaHD, MaSP),
CONSTRAINT FK_CTHD_HD FOREIGN KEY (MaHD) REFERENCES
Trang 514 Truy vấn dữ liệu
a) Dữ liệu lấy có ngày tháng năm, có thay đổi định dạng theo ngày, tháng và năm
Select COUNT(*) AS N"S HÓA Đ N" From HOADON H Ố Ơ
Where To_Char (H.NgayBan,'MM') In ('05') AND To_Char(H.NgayBan,'YYYY') In ('2019');
SELECT HoTen FROM NHANVIEN WHERE NgaySinh=’05-SEP-1998’;
b) Sắp xếp dữ liệu
Cho biết thông tin tên nhân viên, chức vụ, ngày sinh (hire_date) của những nhân viên được sinh từ ngày 20/02/1998 đến ngày 1/05/1998 Thông tin được hiển thị tăng dần theo ngày sinh?
SELECT HoTen, ChucVu, NgaySinh FROM NHANVIEN
WHERE NgaySinh BETWEEN '20/FEB/1998' AND '1/MAY/1998' ORDER BY NgaySinh ASC;