Rút gọn câu truy vấn SQL qua phán đoán và cưỡng chế

78 233 0
Rút gọn câu truy vấn SQL qua phán đoán và cưỡng chế

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÙI MẠNH HÙNG RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN ĐOÁN VÀ CƯỠNG CHẾ LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2015 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÙI MẠNH HÙNG RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN ĐOÁN VÀ CƯỠNG CHẾ Thuộc chuyên ngành : Khoa học máy tính Mã số chuyên ngành : 60 48 01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH PGS TS LÊ HUY THẬP THÁI NGUYÊN - 2015 i LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa công bố công trình khác Qua em xin chân thành cảm ơn toàn thể thầy cô khoa đào tạo sau đại học trường Đại học Công nghệ Thông tin Truyền thông đặc biệt thầy PGS.TS Lê Huy Thập, tạo điều kiện thuận lợi hướng dẫn em để hoàn thành luận văn ii MỤC LỤC LỜI CAM ĐOAN i DANH MỤC BẢNG BIỂU iv DANH MỤC HÌNH v BẢNG DANH MỤC CÁC KÍ HIỆU vii LỜI MỞ ĐẦU 1 Đặt vấn đề Đối tượng phạm vi nghiên cứu Hướng nghiên cứu đề tài Phương pháp nghiên cứu Ý nghĩa khoa học đề tài Các kết dự kiến đạt Chương CƠ SỞ LÝ THUYẾT 1.1 Mệnh đề logic phép toán mệnh đề 1.1.1 Khái niệm mệnh đề 1.1.2 Biến mệnh đề biểu thức mệnh đề 1.1.3 Các phép toán mệnh đề 1.1.4 Các biểu thức logic 1.2 Các khái niệm CSDL phân tán 1.2.1 Khái niệm phán đoán 1.2.2 Khái niệm cưỡng chế 13 1.3 Kết luận chương 19 Chương 2: RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN ĐOÁN VÀ CƯỠNG CHẾ 20 2.1 Các thuật toán rút gọn câu truy vấn 20 2.1.1 Rút gọn cho phân mảnh ngang 21 2.1.2 Rút gọn phân mảnh dọc 32 2.1.3 Rút gọn phân mảnh hỗn hợp 35 2.2 Rút gọn câu truy vấn phân tán qua phán đoán cưỡng chế 39 2.2.1 Rút gọn phân mảnh ngang qua phán đoán cưỡng chế 40 2.2.2 Rút gọn phân mảnh dọc qua phán đoán cưỡng chế 47 iii 2.2.3 Rút gọn phân mảnh hỗn hợp qua phán đoán cưỡng chế 49 2.3 Kết luận chương 53 Chương 3: CHƯƠNG TRÌNH ỨNG DỤNG 54 3.1 Chương trình ứng dụng hỗ trợ khách hàng sử dụng dịch vụ viễn thông Bưu điện Cầu Giấy 54 3.2 Kết luận chương 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN 68 iv DANH MỤC BẢNG BIỂU Bảng 1.1 Bảng chân trị phép toán mệnh đề Bảng 1.2 Mức ưu tiên phép toán logic Bảng 2.1-1 Quan hệ NhanVien 20 Bảng 2.1-2 Quan hệ DuAn 20 Bảng 2.1-3 Quan hệ TraLuong 21 Bảng 2.1-4 Quan hệ PhanNhiem 21 Bảng 2.1-5 Mảnh ngang DuAn H1 23 Bảng 2.1-6 Mảnh ngang DuAn H2 24 Bảng 2.1-7 Mảnh ngang DuAn H3 24 Bảng 2.1-8 TraLuong1 26 Bảng 2.1-9 TraLuong2 26 Bảng 2.1-10 Phân hoạch ngang cho quan hệ DuAn: DuAnH1, DuAnH3, DuAnH4, DuAnH6 28 Bảng 2.1-11 Khoa 28 Bảng 2.1-12 Sinhvien 29 Bảng 2.1-13 Monhoc 29 Bảng 2.1-14 Diem 29 Bảng 2.1-15: Sinhvien1 30 Bảng 2.1-16: Sinhvien2 30 Bảng 2.1-17 33 Bảng 2.1-18 33 Bảng 2.2-1 Quan hệ EMP 50 Bảng 2.2-2 Mảnh hỗn hợp EMPHH1 50 Bảng 2.2-3 Mảnh hỗn hợp EMPHH2 50 Bảng 2.2-4 Mảnh hỗn hợp EMPHH3 50 v DANH MỤC HÌNH Hình 1.1 CSDL tập trung, DDBS Hình 1.2 CSDL phân tán mạng, DDBS Hình 2.1: Biểu diễn mối liên hệ quan hệ nhờ đường nối 22 Hình 2.2: Mối liên hệ quan hệ 29 Hình 2.3 Rút gọn phân mảnh ngang với phép nối 34 Hình 2.4 Phép chiếu vô dụng 35 Hình 2.7 (b) vấn tin rút gọn 44 Hình 2.8 Vấn tin gốc ví dụ 2.16 46 Hình 2.9 Vấn tin gốc giao hoán 46 Hình 2.10 Vấn tin sau dùng mệnh đề mâu thuẫn 46 Hình 2.11 Cây vấn tin sau giao hoán phép hợp phép nối 47 Hình 2.12 Rút gọn cho phân mảnh dẫn xuất 47 Hình 2.13 a,b,c Rút gọn cho phân mảnh dọc 49 Hình 2.14 Cây vấn tin gốc 51 Hình 2.15 Cây vấn tin loại EMPHH1 52 Hình 2.16: Cây vấn tin đẩy phép chiếu xuống, phép nối lên 52 Hình 2.17 Câu vấn tin rút gọn 53 vi DANH MỤC CÁC CHỮ VIẾT TẮT CSDL Cơ sở liệu CPU Central Processing Unit (Bộ xử lý trung tâm) SQL Structured Query Language (Ngôn ngữ truy vấn có cấu trúc) DDBS Distributed Database System (Hệ sở liệu phân tán) vii BẢNG DANH MỤC CÁC KÍ HIỆU  Phép giao  Phép hợp ∈ Ký hiệu thuộc  Ký hiệu không thuộc - Phép trừ X Tích đề Phép nối π Phép chiếu θ Tê ta * Kết nối tự nhiên > Phép so sánh lớn < Phép so sánh bé ÷ Phép chia Phép Phép  Tập rỗng ¬ Phủ định = Phép ≥ Lớn ≤ Nhỏ σ Phép chọn Π Pi LỜI MỞ ĐẦU Đặt vấn đề Ngày với phát triển khoa học kỹ thuật, bùng nổ thông tin cung cấp đa dạng loại hình thương mại, quản lý dịch vụ đa phương tiện cho người sử dụng Kết nối máy tính thành mạng với mục tiêu chia sẻ tài nguyên, khai thác có hiệu tài nguyên thông tin, nâng cao khả tích hợp trao đổi loại liệu thành phần mạng, nhu cầu thu thập, lưu trữ, xử lý trao đổi thông tin ngày tăng Khi khối lượng thông tin phải xử lý ngày lớn, phong phú đa dạng vấn đề đặt xử lý thông tin để tìm cách giảm thiểu thời gian chi phí tăng cao hiệu xử lý Một giải pháp có tính khả thi phải xử lý câu lệnh SQL truy vấn liệu dựa vào quy tắc phán đoán – cưỡng chế phương pháp rút gọn thứ tự gộp nhóm phân mảnh mà gọi giải pháp tiền xử lý Đó mục đích chọn nghiên cứu “ Rút gọn câu truy vấn SQL qua phán đoán cưỡng chế ” làm đề tài luận văn tốt nghiệp Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu sở liệu phân tán, xử lý song song phân tán - Phạm vi nghiên cứu số phương pháp rút gọn câu truy vấn SQL sở liệu phân tán Hướng nghiên cứu đề tài - Nghiên cứu tối ưu hóa truy vấn sở liệu phân tán, phương pháp, kỹ thuật, thuật toán liên quan đến rút gọn câu truy vấn SQL đặc biệt phương pháp phán đoán, cưỡng chế - Nghiên cứu mô hình chi phí song song mô hình chi phí song song tối ưu hóa truy vấn Nghiên cứu mô hình tối ưu hóa hai pha Phương pháp nghiên cứu - Nghiên cứu kỹ kiến thức, chủ đề có liên quan đến đề tài - Nghiên cứu quy tắc phương pháp phán đoán cưỡng chế - Nắm vững kiến thức rút gọn câu vấn tin dựa vào phán đoán 55 Mô hình quan hệ: Ứng dụng phán đoán cưỡng chế thi hành câu SQL thông tin cần kết xuất CSDL Ví dụ 3.1 Xét câu truy vấn: “Cho biết tên khách hàng sử dụng dịch vụ viễn thông gói Mega Basic” Câu truy vấn diễn tả sau: q1: SELECT Khachhang.HotenKH FROM Khachhang, Dichvu WHERE Khachhang.MaDV=Dichvu.MaDV AND TenDV=”Mega Basic” Sau tách phép chọn, câu truy vấn q1 thay q11 theo sau q12, TGIAN1 quan hệ trung gian: q11: SELECT Dichvu.MaDV INTO TGIAN1 FROM Dichvu WHERE TenDV=”Mega Basic” q12: SELECT Khachhang.HotenKH FROM Khachhang, TGIAN1 WHERE Khachhang.MaDV= TGIAN1.MaDV 56 Như câu vấn tin q phân rã thành chuỗi q11->q12 Câu vấn tin đơn quan hệ q11 dùng để vấn tin ORQOP (One Relation Query Optimization Processor), câu lệnh q12 không loại đơn quan hệ rút gọn phép phân rã thuật toán Ví dụ 3.2 Xét câu truy vấn: " Hãy cho biết toàn thông tin khách hàng dịch vụ đăng ký khách hàng sở liệu" Câu truy vấn sau: SELECT MaKH, HotenKh, CMND, Ngaysinh, Diachi, Dienthoailienhe, Ngaysinh, Diachi, Email, Account, Dienthoailapdat, Ngaydangky, tendv, tocdo, giacuoc FROM Khachhang, Dichvu WHERE Khachhang.MaDV= Dichvu.MaDV Ví dụ 3.3 Xét câu truy vấn: " Hãy cho biết lần hỗ trợ khách hàng có tên ”Ngô Thị Hồng” sở liệu" Cây truy vấn tiền xử lý sau: SELECT HotenKH, account, thoigian_hotro, yeucau_hotro, noidung_hotro FROM hotro, khachhang WHERE hotro.MaKH=Khachhang.MaKH WHERE Khachhang.HotenKH = “Ngô Thị Hồng” Sau tách phép chọn, câu truy vấn q1 thay q11 theo sau q12, TGIAN2 quan hệ trung gian q11: SELECT Khachhang.MaKH INTO TGIAN2 FROM Khachhang WHERE Khachhang.HotenKH = “Ngô Thị Hồng” q12: SELECT hotro.thoigian_hotro, hotro.yeucau_hotro, hotro.noidung_hotro FROM hotro, TGIAN2 WHERE hotro.MaKH= TGIAN2.MaKH Như câu vấn tin q phân rã thành chuỗi q11->q12 Câu vấn tin đơn quan hệ q11 dùng để vấn tin ORQOP (One Relation Query Optimization Processor), 57 câu lệnh q12 không loại đơn quan hệ rút gọn phép phân rã thuật toán Ứng dụng: Phần mềm quản lý khách hàng Bưu điện Cầu Giấy 58 Mã nguồn phần mềm ''' ''' Lớp thông tin khách hàng Class CInfoCustomer Private _customerID As String = String.Empty ' Mã Khách hàng Private _customerName As String = String.Empty ' Họ tên khách hàng Private _identityCard As String = String.Empty ' Chứng minh nhân dân khách hàng Private _birthday As DateTime = DateTime.Today ' Ngày sinh khách hàng Private _address As String = String.Empty ' Địa khách hàng Private _phoneNumber As String = String.Empty ' Điện thoại khách hàng Private _eMail As String = String.Empty ' Email khách hàng Private _password As String = String.Empty ' Mật khách hàng Private _serviceID As String = String.Empty Private _account As String = String.Empty 'Acount khach hang 59 Private _phoneNumberADSL As String = String.Empty 'Dien thoai lap dat Private _dateregister As DateTime = DateTime.Today ' Ngày đăng ký dịch vụ #Region "Constructor" Public Sub New(ByVal cusID As String, ByVal cusName As String, ByVal idCard As String, ByVal birthday As DateTime, ByVal address As String, ByVal phoneNum As String, ByVal eMail As String, ByVal password As String) Me._customerID = cusID Me._customerName = cusName Me._identityCard = idCard Me._birthday = birthday Me._address = address Me._phoneNumber = phoneNum Me._eMail = eMail Me._password = password End Sub #End Region #Region "Properties" Public Property CustomerID() As String Get Return Me._customerID End Get Set(ByVal value As String) Me._customerID = value End Set End Property Public Property CustomerName() As String Get Return Me._customerName End Get Set(ByVal value As String) Me._customerName = value End Set End Property Public Property IdentityCard() As String Get Return Me._identityCard End Get Set(ByVal value As String) Me._identityCard = value End Set End Property Public Property Birthday() As DateTime 60 Get Return Me._birthday End Get Set(ByVal value As DateTime) Me._birthday = value End Set End Property Public Property Address() As String Get Return Me._address End Get Set(ByVal value As String) Me._address = value End Set End Property Public Property PhoneNumber() As String Get Return Me._phoneNumber End Get Set(ByVal value As String) Me._phoneNumber = value End Set End Property Public Property EMail() As String Get Return Me._eMail End Get Set(ByVal value As String) Me._eMail = value End Set End Property Public Property Password() As String Get Return Me._password End Get Set(ByVal value As String) Me._password = value End Set End Property Public Property ServiceID() As String Get 61 Return Me._serviceID End Get Set(ByVal value As String) Me._serviceID = value End Set End Property Public Property Account() As String Get Return Me._account End Get Set(ByVal value As String) Me._account = value End Set End Property Public Property phoneNumberADSL() As String Get Return Me._phoneNumberADSL End Get Set(ByVal value As String) Me._phoneNumberADSL = value End Set End Property Public Property DateRegister() As DateTime Get Return Me._dateregister End Get Set(ByVal value As DateTime) Me._dateregister = value End Set End Property #End Region End Class ''' ''' Hàm thêm khách hàng vào sở liệu ''' ''' Đối tương CInfoCustomer cần thêm mới ''' Trả true thêm thành công, ngược lại trả false Public Function AddNewCustomer(ByVal customer As CInfoCustomer, ByRef addNewCustomerError As String) As Boolean Me.Connect() Dim bCheck As Boolean = True 62 Dim query As String = "SELECT COUNT(*) as total FROM khachhang WHERE CMND = '" & customer.IdentityCard.Trim() & "'" Dim dr As OleDbDataReader Dim cmnd_db As String command = New OleDbCommand(query, connection) dr = command.ExecuteReader dr.Read() cmnd_db = dr("total") If (cmnd_db > 0) Then bCheck = False addNewCustomerError = "Trùng số CMND, bạn kiểm tra lại" Else query = "SELECT COUNT(*) as total FROM khachhang WHERE account='" & customer.Account & "'" command = New OleDbCommand(query, connection) dr = command.ExecuteReader dr.Read() cmnd_db = dr("total") If (cmnd_db > 0) Then bCheck = False addNewCustomerError = "Trùng Account, bạn kiểm tra lại" Else query = "SELECT COUNT(*) as total FROM khachhang WHERE dienthoailapdat='" & customer.phoneNumberADSL & "'" command = New OleDbCommand(query, connection) dr = command.ExecuteReader dr.Read() cmnd_db = dr("total") If (cmnd_db > 0) Then bCheck = False addNewCustomerError = "Trùng điện thoại lắp đặt, bạn kiểm tra lại" Else query = "INSERT INTO khachhang(MaKH,HotenKH,CMND,Ngaysinh,Diachi,Dienthoailienhe,Email,MaDV,a ccount,dienthoailapdat,ngaydangky) VALUES(?,?,?,?,?,?,?,?,?,?,?)" Me.command = New OleDbCommand(query, connection) Me.command.Parameters.Add(New OleDbParameter("@MaKH", customer.CustomerID.Trim())) Me.command.Parameters.Add(New OleDbParameter("@HotenKH", customer.CustomerName.Trim())) Me.command.Parameters.Add(New OleDbParameter("@CMND", customer.IdentityCard.Trim())) Me.command.Parameters.Add(New OleDbParameter("@Ngaysinh", customer.Birthday)) 63 Me.command.Parameters.Add(New OleDbParameter("@Diachi", customer.Address.Trim())) Me.command.Parameters.Add(New OleDbParameter("@Dienthoailienhe", customer.PhoneNumber.Trim())) Me.command.Parameters.Add(New OleDbParameter("@Email", customer.EMail.Trim())) Me.command.Parameters.Add(New OleDbParameter("@MaDV", customer.ServiceID)) Me.command.Parameters.Add(New OleDbParameter("@Account", customer.Account)) Me.command.Parameters.Add(New OleDbParameter("@Dienthoailapdat", customer.phoneNumberADSL)) Me.command.Parameters.Add(New OleDbParameter("@Ngaydangky", customer.DateRegister)) Try Me.command.ExecuteNonQuery() Catch ex As Exception bCheck = False Throw ex End Try End If End If End If Me.Disconnect() Return bCheck End Function ''' Hàm sửa đổi thông tin khách hàng có sở liệu ''' ''' Đối tương CInfoCustomer cần sửa Public Function UpdateCustomer(ByVal customer As CInfoCustomer) As Boolean Me.Connect() Dim bCheck As Boolean = True Dim query As String = "" query = "update KHACHHANG set HOTENKH=?, CMND=?, NGAYSINH=?, DIACHI=?, DIENTHOAILIENHE=?, EMAIL=?, MaDV=? where MAKH = ?" Me.command = New OleDbCommand(query, connection) Me.command.Parameters.Add(New OleDbParameter("@HOTENKH", customer.CustomerName.Trim())) Me.command.Parameters.Add(New OleDbParameter("@CMND", customer.IdentityCard.Trim())) 64 Me.command.Parameters.Add(New OleDbParameter("@NGAYSINH", customer.Birthday)) Me.command.Parameters.Add(New OleDbParameter("@DIACHI", customer.Address.Trim())) Me.command.Parameters.Add(New OleDbParameter("@DIENTHOAILIENHE", customer.PhoneNumber.Trim())) Me.command.Parameters.Add(New OleDbParameter("@EMAIL", customer.EMail.Trim())) 'Me.command.Parameters.Add(New OleDbParameter("@PWD", customer.Password.Trim())) Me.command.Parameters.Add(New OleDbParameter("@MAKH", customer.CustomerID.Trim())) Me.command.Parameters.Add(New OleDbParameter("@MADV", customer.ServiceID)) Try Me.command.ExecuteNonQuery() Me.Disconnect() Catch ex As Exception Me.Disconnect() bCheck = False Throw ex End Try Return bCheck End Function ''' Hàm chèn thêm liệu thông tin hỗ trợ khách hàng Public Function InsertSupportCustomer(ByVal customer As CSupportCustomer) As Boolean Me.Connect() Dim bCheck As Boolean = True Dim query As String = "" query = "INSERT INTO Hotro(MaKH, noidung_hotro, yeucau_hotro, thoigian_hotro) VALUES(?,?,?,?)" Me.command = New OleDbCommand(query, connection) Me.command.Parameters.Add(New OleDbParameter("@MaKH", customer.CustomerID.Trim())) Me.command.Parameters.Add(New OleDbParameter("@noidung_hotro", customer.cusNoidunghotro.Trim())) Me.command.Parameters.Add(New OleDbParameter("@yeucau_hotro", customer.cusYeucauhotro.Trim())) Me.command.Parameters.Add(New OleDbParameter("@thoigian_hotro", customer.cusThoigianhotro)) Try Me.command.ExecuteNonQuery() Me.Disconnect() Catch ex As Exception 65 Me.Disconnect() bCheck = False Throw ex End Try Return bCheck End Function 'Hien thi thong tin chi tiet ve khach hang Public Sub DisplayCusDetail(ByVal idCode As String, ByRef resultReturn() As String) ReDim resultReturn(5) Me.Connect() Try Dim query As String = "SELECT Account, HotenKH, dienthoailapdat, dienthoailienhe, [tendv] & " & Chr(34) & " " & Chr(34) & " & [Tocdo] as dichvu FROM Khachhang INNER JOIN " & _ "Dichvu ON Khachhang.MaDV = Dichvu.MaDV WHERE MaKH = '" & idCode & "'" Dim dr As OleDbDataReader 'MsgBox(query) command = New OleDbCommand(query, connection) dr = command.ExecuteReader dr.Read() resultReturn(0) = dr("Account") resultReturn(1) = dr("HotenKH") resultReturn(2) = dr("dienthoailapdat") resultReturn(3) = dr("dienthoailienhe") resultReturn(4) = dr("dichvu") Catch e As Exception Throw e End Try Me.Disconnect() End Sub ''' ''' Tìm kiếm thông tin khách hàng ''' ''' Mã khách hàng cần tìm ''' Tên khách hàng cần tìm ''' Số chứng minh nhân dân ''' Điện thoại khách hàng ''' Datatable chứa kết tìm được Public Function SearchCustomer(ByVal idCode As String, ByVal cusName As String, ByVal cusIdentity As String, ByVal cusTel As String) As DataTable Try 66 'Dim query As String = "SELECT makh,hotenkh,cmnd,FORMAT(ngaysinh, 'dd-mm-yyyy') as ngaysinh,diachi,dienthoailienhe,email, account, dienthoailapdat, FORMAT(ngaydangky, 'dd-mm-yyyy hh:nn') AS ngaydangky FROM khachhang WHERE " Dim query As String = "SELECT makh,hotenkh,cmnd, ngaysinh,diachi,dienthoailienhe,email, account, dienthoailapdat, ngaydangky FROM khachhang WHERE " Dim hasWhere As Boolean = False If (idCode "") Then hasWhere = True query = query & "account LIKE '%" + idCode + "%'" End If If (cusIdentity "") Then If hasWhere Then query = query & " AND cmnd LIKE '%" + cusIdentity + "%'" Else query = query & "cmnd LIKE %'" + cusIdentity + "%'" hasWhere = True End If End If If (cusTel "") Then If hasWhere Then query = query & " AND dienthoailapdat LIKE '%" + cusTel + "%'" Else query = query & "dienthoailapdat LIKE '%" + cusTel + "%'" hasWhere = True End If End If If (cusName "") Then If hasWhere Then query = query & " AND hotenkh LIKE '%" + cusName + "%'" Else query = query & "hotenkh LIKE '%" + cusName + "%'" hasWhere = True End If End If If (Not hasWhere) Then query = "SELECT makh,hotenkh,cmnd,ngaysinh,diachi,dienthoailienhe,email, account, dienthoailapdat, ngaydangky FROM khachhang" End If 67 query = query & " ORDER BY MaKH" Me.Connect() Dim sqlDataTable As DataTable = Me.ExecuteQuery_DataTable(query) Me.Disconnect() Return sqlDataTable Catch e As Exception Throw e End Try End Function 3.2 Kết luận chương Trong chương em áp dụng lý thuyết chương vào sở liệu Bưu điện Cầu Giấy (dạng Demo) Thông qua việc phát biểu phân tích toán Mỗi ví dụ thể bước xử lý câu truy vấn SQL qua phán đoán cưỡng chế thi hành 68 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN Những kết nghiên cứu luận văn cho phép rút kết luận sau: Về mặt nghiên cứu lý thuyết: Việc thiết kế sở liệu phân tán trình xử lý câu truy vấn SQL phát triển từ hệ tập trung, việc phân tán quan hệ thường chia chúng thành nhiều mảnh nhỏ để đặt vị trí thường xuyên sử dụng mảnh đó, mảnh sau chia cấp phát vị trí khác Vấn đề để tìm cách giảm thiểu thời gian chi phí tăng cao hiệu xử lý mà đảm bảo kết tương đương Việc lựa chọn giải pháp khả thi để thực phân tán sở liệu cho phù hợp với yêu cầu thực tế bước quan trọng khởi đầu xây dựng hệ phân tán Một giải pháp phân tán liệu phù hợp làm tăng tốc độ xử lý liệu mang lại hiệu kinh tế cao Luận văn giới thiệu giải pháp có tính khả thi xử lý câu lệnh SQL truy vấn liệu dựa vào quy tắc phán đoán – cưỡng chế phương pháp rút gọn thứ tự gộp nhóm phân mảnh mà gọi giải pháp tiền xử lí Về mặt ứng dụng: Áp dụng Nghiên cứu tối ưu hóa truy vấn sở liệu phân tán, phương pháp, kỹ thuật, thuật toán liên quan đến xử lý câu truy vấn SQL đặc biệt phương pháp phán đoán, cưỡng chế Áp dụng vào thiết kế hệ thống hỗ trợ khách hàng sử dụng dịch vụ viễn thông Bưu điện Cầu Giấy Hạn chế luận văn dừng lại mức độ mô tả, nghiên cứu lý thuyết thiết kế, xử lý câu truy vấn SQL phán đoán cưỡng chế thông qua mô hình ứng dụng chưa đạt mức nghiên cứu sâu sắc Hướng phát triển: - Nghiên cứu mô hình chi phí song song mô hình chi phí song song tối ưu hóa truy vấn Nghiên cứu mô hình tối ưu hóa hai pha 69 TÀI LIỆU THAM KHẢO [1] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, NXB Khoa học Kỹ thuật, 1996 [2] Đoàn Văn Ban, Nguyễn Mậu Hân, Xử lý song song phân tán, NXB Khoa học Kỹ thuật, 2006 [3] Lê Huy Thập, “Bài giảng CSDL phân tán” ĐH Sư Phạm Hà Nội Học Viện CN Bưu Chính Viễn Thông [4] Lê Huy Thập, Cơ sở lý thuyết song song, NXB THÔNG TIN VÀ TRUYỀN THÔNG, 8-2010 [5] Lê Huy Thập, “Giáo trình kỹ thuật lập trình“ Tập 1, NXB KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ, 300p, 2008 [6] Nguyễn Bá Tường, Nhập môn sở liệu phân tán, NXB Khoa học Kỹ thuật, 2004 [7] Robert Sedgewick, Cẩm nang thuật toán Vol.1 and vol.2 NXB Khoa học Kỹ thuật, 2001 [8] M.Tamer Ozsu, Patrick Valduriez Nguyên lý hệ liệu phân tán Trần Đức Quang biên dịch NXB Thống kê, 1999 [9] Seyed H Roo, “Parallel processing and Parallel Algorithms, Theory and Coputation”, Springer 1999 [10] J Bischoff & T Alexander, Data Warehouse: Practical Advice from the Experts, Prentice Hall, 2002 [11] L John, “Operational Data Stores: Building an Effective Strategy”, Data Warehouse: Practical Advive from the Experts, Prentice Hall, NJ, 1997 [12] A Moeller (2001), Distributed Data Warehousing Using Web Technology ... tán qua phán đoán cưỡng chế 39 2.2.1 Rút gọn phân mảnh ngang qua phán đoán cưỡng chế 40 2.2.2 Rút gọn phân mảnh dọc qua phán đoán cưỡng chế 47 iii 2.2.3 Rút gọn phân mảnh hỗn hợp qua. .. toán rút gọn câu truy vấn 20 2.1.1 Rút gọn cho phân mảnh ngang 21 2.1.2 Rút gọn phân mảnh dọc 32 2.1.3 Rút gọn phân mảnh hỗn hợp 35 2.2 Rút gọn câu truy vấn. .. sai phán đoán phán đoán cưỡng chế thực câu vấn tin có liên quan sai thì: • Hoặc hủy câu vấn tin • Hoặc chỉnh sửa câu vấn tin Từ để định câu vấn tin có thực không Ví dụ: Khi nhập ghi vào quan hệ

Ngày đăng: 15/04/2017, 20:47

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan