1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu về GIS và logic mờ áp dụng cho bài toán phân lớp khách hàng tại VNPT thái nguyên

88 414 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 2,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hình .1.Các từ khóa thông dụng- C# là ngôn ngữ hướng module: + Mã nguồn của C# có thể được viết trong những phần được gọi là lớp, những lớp này chứa các phương thức thành viên của nó.. -

Trang 1

Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐH

CNTT&TT nói chung, các thầy cô trong Bộ môn Khoa Học Máy Tính nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập

Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành khoá luận tốt nghiệp

Thái Nguyên, ngày 06 tháng 6 năm 2016

Sinh Viên Thực Hiện

Trần Minh Hoàng

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan số liệu và kết quả nghiên cứu trong đồ án này là trung thực và chưa hề được sử dụng để bảo vệ một học vị nào Mọi sự giúp đỡ cho việc thực hiện đồ án này đã được cảm ơn và các thông tin trích dẫn trong đồ án đã được chỉ rõ nguồn gốc rõ ràng và được phép công bố

Thái Nguyên, ngày 06 tháng 6 năm 2016

Sinh Viên Thực Hiện

Trần Minh Hoàng

Trang 5

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

MỞ ĐẦU 1

CHƯƠNG 1: CÔNG CỤ THỰC HIỆN 2

1.1.Ngôn ngữ lập trình C# 2

1.1.1.Lịch sử hình thành 2

1.1.2.Đặc điểm ngôn ngữ 2

1.1.3.Cách thức ứng dụng C# hoạt động 7

1.1.4.Ngôn ngữ C# và những ngôn ngữ khác 8

1.1.5.Kiểu dữ liệu trong C# 9

1.1.6.Toán tử trong C# 10

1.1.7.GMap.NET cho ngôn ngữ C# 11

1.2.Công cụ quản lý dữ liệu SQL 13

1.2.1.Lịch sử phát triển 13

1.2.2.Đặc điểm của SQL Server và đối tượng làm việc 13

1.2.3.Các định nghĩa cơ bản trong SQL 15

1.2.4.Những cú pháp cơ bản 16

1.2.5.Các chế độ bảo mật 18

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 19

2.1.Tập mờ 19

2.1.1.Khái niệm tập rõ 19

2.1.2.Khái niệm tập mờ 19

2.1.3.Tập mờ trực cảm 20

2.2.Các đặc trưng của tập mờ 21

Trang 6

2.3.Số mờ và các tập con mờ lồi 23

2.3.1.Tập mờ lồi và số mờ 23

2.3.2.Các hàm thuộc của tập mờ 23

2.4.Các phép toán trên tập mờ 27

2.4.1.So sánh các tập mờ 27

2.4.2.Các phép toán trên tập mờ 27

2.5.Các kỹ thuật phân loại dữ liệu 31

2.5.1.Giới thiệu về kỹ thuật phân cụm trong Khai phá dữ liệu (Clustering Techniques in Data Mining) 31

2.5.2.Kỹ thuật phân lớp dữ liệu 31

2.5.3.Các phương pháp tính khoảng cách 33

2.5.4.Thuật toán K-Means 34

2.6.Hệ thống thông tin địa lý 38

CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 40

3.1.Mô tả bài toán 40

3.2.Xây dựng các chức năng của chương trình 40

3.2.1.Cấu trúc cơ sở dữ liệu sử dụng trong chương trình 40

3.2.2.Xây dựng giao diện form 43

3.2.3.Xây dựng các chức năng của chương trình 45

3.3.Ứng dụng thuật toán K-Means vào việc phân loại khách hàng 53

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 60

NHẬN XÉT CỦA GIÁO VIÊN 61

TÀI LIỆU THAM KHẢO 62

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.1.Các từ khóa thông dụng 3

Hình 1.2.Giao diện ứng dụng console application 5

Hình 1.3.Giao diện ứng dụng window application 6

Hình 1.4.Giao diện ứng dụng web application 6

Hình 1.5.Khái quát về NET Framework 8

Hình 1.6.GMap.NET 12

Hình 1.7.Các nguồn cung cấp dữ liệu bản đồ 12

Hình 2.1.Các tập mờ tam giác 24

Hình 2.2.Tập mờ hình thang 24

Hình 2.3.Tập mờ L 25

Hình 2.4.Tập mờ Gamma tuyến tính 26

Hình 2.5.Tập mờ Singleton 26

Hình 2.6.Hợp của hai tập mờ A và B 28

Hình 2.7.Giao của hai tập mờ A và B 28

Hình 2.8.Phần bù của tập mờ A 30

Hình 2.9.Sơ đồ thuật toán K-Means 34

Hình 2.10.Khởi tạo trọng tâm 35

Hình 2.11.Trọng tâm mới 36

Hình 2.12.Trọng tâm mới 37

Hình 3.1.Bảng chi tiết dịch vụ 41

Hình 3.2.Bảng dịch vụ 41

Hình 3.3.Bảng danh mục khách hàng 41

Hình 3.4.Bảng khách hàng 41

Hình 3.5.Bảng huyện 42

Trang 8

Hình 3.6.Bảng phường 42

Hình 3.7.Bảng tỉnh 42

Hình 3.8.Mối quan hệ giữa các bảng 43

Hình 3.9.Giao diện chính 43

Hình 3.10.Giao diện thêm mới thuê bao 44

Hình 3.11.Giao diện tra cứu thông tin 44

Hình 3.12.Giao diện phân loại khách hàng 45

Hình 3.13.Đặc tính cơ bản của bản đồ GMap 45

Hình 3.14.Bản đồ GMap sau khi thiết lập 46

Hình 3.15.Đánh dấu trên bản đồ 48

Hình 3.16.Kết quả trả về 49

Hình 3.17.Bố cục một bảng Excel 51

Hình 3.18.Sơ đồ thuật toán 54

Hình 3.19.Kết quả sau khi phân loại 59

Trang 9

MỞ ĐẦU

Chúng ta đang sống trong một thời đại mới, thời đại phát triển rực rỡ của CNTT CNTT đã ở một bước phát triển cao đó là số hóa tất cả các dữ liệu thông tin, luân chuyển mạnh mẽ và kết nối tất cả chúng ta lại với nhau

Xu thế toàn cầu hóa về internet đang diễn ra mạnh mẽ trên khắp thế giới, và Việt Nam cũng không phải ngoại lệ Số người dùng internet tại Việt Nam tính đến cuối tháng 6/2015 đã vượt 45 triệu người, chiếm hơn 48% dân số Việt Nam Internet bùng nổ đang đặt ra nhiều cơ hội và thách thức cho sự phát triển kinh tế –

xã hội ở nước ta Song song với đó, các dịch vụ giá trị gia tăng (VAS – Value added service), dịch vụ Internet cũng đang phát triển mạnh

Như vậy, với tình hình hiện tại, số lượng các hộ dân sử dụng dịch vụ Internet, MyTV, điện thoại… ngày một tăng Việc thống kê báo cáo số tiền cước,

số các tài khoản còn hoạt động… sẽ gặp nhiều khó khăn khi thông tin ngày một nhiều Do đó, một phần mềm quản lý và phân loại khách hàng là hết sức cần thiết

Để thực hiện điều này, với sự trợ giúp của công nghệ thông tin, hàng loạt các công cụ hỗ trợ phát triển phần mềm, lưu trữ dữ liệu có thể sử dụng để giải quyết bài toán Điển hình như công cụ lập trình C#, hệ quản trị cơ sở dữ liệu SQL

Do vậy, trong quá trình thực tập tại cơ quan, em đã chọn đề tài nghiên cứu

về GIS và Logic mờ áp dụng cho bài toán phân lớp khách hàng tại VNPT Thái Nguyên Việc hoàn thành đề tài sẽ giúp giảm bớt khối lượng công việc cho nhân viên tại cơ quan

Trang 11

CHƯƠNG 1: CÔNG CỤ THỰC HIỆN 1.1.Ngôn ngữ lập trình C#

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch NET của họ Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC

1.1.1.Lịch sử hình thành.

Từ khi chiếc máy tính có thể lập trình đầu tiên (First freely programmable computer) ra đời vào năm 1936 hàng nghìn ngôn ngữ lập trình đã được tạo ra Có những ngôn ngữ chết đi vì sự thiếu tâm huyết của người tạo ra nó, sự hạn chế của chính ngôn ngữ hay không được cộng đồng sử dụng rộng rãi và cũng có cả những ngôn ngữ trở nên thành công Với sự hỗ trợ của Microsoft, tháng giêng năm 1999, Anders Hejlsberg trở thành người phụ trách xây dựng ngôn ngữ lập trình Cool (C-like Object Oriented Language tiền thân của C#) , ngày 12/2/2002 C# ra đời cùng với NET Framework 1.0

1.1.2.Đặc điểm ngôn ngữ.

- C# là ngôn ngữ đơn giản:

+ C# loại bỏ được một vài sự phức tạp và rối rắm của các ngôn ngữ C++ và Java

+ C# khá giống C / C++ về diện mạo, cú pháp, biểu thức, toán tử

+ Các chức năng của C# được lấy trực tiếp từ ngôn ngữ C / C++ nhưng được cải tiến để làm cho ngôn ngữ đơn giản hơn

- C# có những đặc tính của ngôn ngữ hiện đại như:

+ Xử lý ngoại lệ

+ Thu gom bộ nhớ tự động

Trang 12

+ Class (lớp) và các Method (phương thức) thành viên của nó có thể được

sử dụng lại trong những ứng dụng hay chương trình khác

+ C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa dùng để mô tả thông tin, nhưng không gì thế mà C# kém phần mạnh mẽ Chúng ta

có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào

- C# là ngôn ngữ ít từ khóa:

+ C# là ngôn ngữ sử dụng ít từ khóa, phần lớn các từ khóa được sử dụng để

mô tả thông tin

Trang 13

Hình 1.Các từ khóa thông dụng

- C# là ngôn ngữ hướng module:

+ Mã nguồn của C# có thể được viết trong những phần được gọi là lớp, những lớp này chứa các phương thức thành viên của nó Những lớp và phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác Bằng cách truyền mẫu thông tin đến những lớp hay phương thức, chúng ta có thể tạo ra những

mã nguồn dùng lại có hiệu quả

- So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:

+ Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu

+ Các đối tượng không thể được giải phóng tường minh

Trang 14

+ Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstract interfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi.

+ Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]")

+ Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)

- C# hỗ trợ kiểu dữ liệu và phương thức chung (giống Java), ứng dụng C# nhanh bảo mật và mã nguồn có thể tái sử dụng

- Là một ngôn ngữ hướng đối tượng, C# hỗ trợ các khái niệm về đóng gói ncapsulation, thừa kế inheritance và đa hình polymorphism Tất cả các biến và phương thức, bao gồm cả phương thức override virtual methods, được đóng gói trong Class Một lớp có thể kế thừa trực tiếp từ một lớp cha, nhưng nó có thể có thực hiện nhiều interfaces khác nhau…

- Ngoài những nguyên tắc cơ bản của ngôn ngữ hướng đối tượng, C# còn

có những sáng tạo riêng: Encapsulation, Properties, Attribute, XML, Integrated Query (LINQ)

Language Việc sử dụng đối tượng COM hoặc Win32 DLLs thông qua "Interop" trở nên dể dàng Thậm chí C# hỗ trợ con trỏ và các khái niệm của mã "không an toàn" đối với những trường hợp mà trong đó truy cập bộ nhớ trực tiếp là tuyệt đối quan trọng

Trang 15

Quy trình xây dựng ứng dụng C# đơn giản hơn so với C và C++ và linh hoạt hơn trong Java.

- Trong C#, có 3 kiểu ứng dụng chính đó là Console application, Window application và Web application

+ Console application được thiết kế để chạy các dòng lệnh không hỗ trợ giao diện cho người sử dụng

Hình 1.2.Giao diện ứng dụng console application

+ Window application được thiết kế để chạy trên màn hình nền có hỗ trợ giao diện cho người sử dụng

Trang 16

Hình 1.3.Giao diện ứng dụng window application

+ Web application được kết hợp giữa ASP.NET và C#, trong đó C# đóng vai trò xử lý bên dưới Loại ứng dụng này có giao diện đồ họa và xử lý sự kiện

Trang 17

Hình 1.4.Giao diện ứng dụng web application

- C# là một ngôn ngữ phân biệt chữ hoa và chữ thường Dấu “;” được dùng

để kết thúc câu lệnh Tất cả các khai báo và câu lệnh thực hiện đều được đặt trong một file với phần mở rộng là cs

- Nhằm giải quyết sự xung đột giữa việc sử dụng các thư viện khác nhau từ các nhà cung cấp, C# cung cấp một thuộc tính là Namespace Namespace được xem như là tập hợp các lớp đối tượng, và cung cấp duy nhất các định danh cho các kiểu dữ liệu và được đặt trong một cấu trúc phân cấp Các namespace cơ bản của C# bao gồm:

+ System: Chứa lớp toán học, chuyển đổi dữ liệu

+ System.IO: Các lớp cho thao tác Input và Output

+ System.Net: Các lớp liên quan đến giao thức mạng

+ System.Collections: Chứa các lớp liên quan đến xử lý tập hợp

Trang 18

+ System.Data: Các lớp của ADO.NET.

+ System.Drawing: Các lớp thực thi chức năng GUI

+ System.Threading: Các lớp lập trình đa luồng xử lý (MultiThread)

+ System.Web: Các lớp liên quan đến giao thức HTTP

+ System.XML: Các lớp liên quan đến XML

1.1.3.Cách thức ứng dụng C# hoạt động.

- Các ngôn ngữ NET như C#, VB.NET, VJ#, VC++ NET có cách thức hoạt động giống nhau và là một thành phần của NET Framework do đó không thể chạy các ứng dụng này trên các máy không chạy cài đặt NET Framework version thích hợp

- Trước hết cần có cái nhìn khái quát về NET Framework nó gồm 2 phần chính: The common language runtime (CLR) and The NET Framework class library

Trang 19

Hình 1.5.Khái quát về NET Framework

- Trong hình trên những gì chúng ta viết ra sẽ là custom object libraries, class libarary sẽ chứa những class chung Có thể sử dụng nhiều lần các class này định nghĩa console, window hay button thứ mà bạn cần có để ứng dụng chạy mà không cần viết lại

- Runtime chính là nền tảng của NET Framework cách dễ hiểu nhất là coi

nó như máy ảo có nhiệm vụ quản lý bộ nhớ, quản lý luồng, cho phép truy cập các Dll khác để chương trình có thể hoạt động trơn tru

Trang 20

- Khi viết xong một chương trình, qua quá trình biên dịch sẽ cho ta cùng một kết quả, đó là Microsoft Intermediate Language (MSIL code), sau đó JIT compiler sẽ chuyển mã MSIL code sang mã máy, thứ mà CPU có thể hiểu và thực thi.

1.1.4.Ngôn ngữ C# và những ngôn ngữ khác.

- Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ cùng với sự

dễ dàng của ngôn ngữ Visual Basic

- Mặc dù C# loại bỏ một vài đặc tính của C++, nhưng bù lại nó tránh được những lỗi thường gặp trong C++ Điều này tiết kiệm thời gian trong việc hoàn tất chương trình

- Một điều quan trọng khác với C++ đó là mã nguồn C# không đòi hỏi phải

có tập tin header Tất cả mã nguồn được viết trong khai báo trong một lớp

- C# thực hiện thu gom bộ nhớ tự động, do đó việc sử dụng con trỏ trong C# ít quan trọng hơn C++ Những con trỏ cũng có thể được sử dụng trong C#, khi

đó những đoạn mã nguồn này sẽ được đánh dấu là không an toàn (unsafe code)

- Với Java, điểm giống nhau là cả C# và Java đều biên dịch ra mã trung gian, C# biên dịch ra MSIL còn Java biên dịch ra bytecode Sau đó chúng được thực hiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo tương ứng C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép nhiều sự

mở rộng với kiểu dữ liệu giá trị C# cũng bỏ tính đa kế thừa trong một lớp tương tự như Java, tuy nhiên mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao diện

1.1.5.Kiểu dữ liệu trong C#.

C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu, một ngôn ngữ mạnh về kiểu

dữ liệu là phải khai báo kiểu của mỗi đối tượng khi tạo (kiểu số nguyên, số thực, kiểu chuỗi, kiểu điều

khiển ) và trình biên dịch sẽ giúp cho người lập trình không bị lỗi khi chỉ cho phép một loại

Trang 21

kiểu dữ liệu có thể được gán cho các kiểu dữ liệu khác.

Tương tự như C++ hay Java, C# chia thành hai tập hợp kiểu dữ liệu chính: Kiểu xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho người lập trình và kiểu được người dùng định nghĩa (user-defined) do người lập trình tạo ra

Ngoài ra C# cũng hỗ trợ một kiểu con trỏ C++, nhưng hiếm khi được sử dụng, và chỉ khi nào làm việc với những đoạn mã lệnh không được quản lý (unmanaged code) Mã lệnh không được quản lý là các lệnh được viết bên ngoài nền MS.NET, như là các đối tượng COM

Ngôn ngữ C# đưa ra các kiểu dữ liệu xây dựng sẵn rất hữu dụng, phù hợp với một ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu có một sự xác nhận và kích thước không thay đổi

Trang 22

1.1.6.Toán tử trong C#.

1.1.6.1.Toán tử quan hệ.

Những toán tử quan hệ được dùng để so sánh giữa hai giá trị, và sau đó trả

Trang 23

về kết quả là một giá trị logic kiểu bool (true hay false) Ví dụ toán tử so sánh lớn hơn (>) trả về giá trị là true nếu giá trị bên trái của toán tử lớn hơn giá trị bên phải của toán tử Do vậy 5 > 2 trả về một giá trị là true, trong khi 2 > 5 trả về giá trị false.

1.1.6.2.Toán tử logic.

Khi chúng ta muốn kết hợp nhiều điều kiện với nhau như: bắt buộc cả hai hay nhiều điều kiện phải đúng hoặc chỉ cần một trong các điều kiện đúng là đủ hoặc không có điều kiện nào đúng C# cung cấp một tập hợp các toán tử logic để phục vụ cho người lập trình

Trang 24

Các toán tử logic (Giả sử x=5, y=7)

1.1.7.GMap.NET cho ngôn ngữ C#.

GMap.NET là một công cụ đa nền tảng dựa trên framework dotNet Công

cụ này được sử dụng để xây dựng và hiển thị bản đồ cho ứng dụng Window application trong C#

Trang 25

Hình 1.6.GMap.NET

GMap.NET khai thác bản đồ từ nhiều nguồn khác nhau như Bing, Google, Yahoo… Hỗ trợ xây dựng và hiển thị tọa độ địa lý (geocoding), định tuyến (routing) và hỗ trợ tìm đường dựa trên nguồn bản đồ của nhà cung cấp

Trang 26

Hình 1.7.Các nguồn cung cấp dữ liệu bản đồ

1.2.Công cụ quản lý dữ liệu SQL

SQL là viết tắt của Structure Query Language,nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic,Oracle,Visual C

Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người

sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL

1.2.1.Lịch sử phát triển.

Trang 27

SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống quản trị cơ sở dữ liệu lớn

Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên các máy đơn lẻ Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máy chủ (Server)) Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin

từ máy chủ) Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn Nó được sử dụng để nhanh chóng tạo các trang Web động

SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình

1.2.2.Đặc điểm của SQL Server và đối tượng làm việc.

1.2.2.1.Đặc điểm.

- SQL là ngôn ngữ tựa tiếng Anh

- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế nào Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi

- SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL:

+ Chèn, cập nhật, xoá các hàng trong một quan hệ

+ Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL

+ Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL

+ Đảm bảo tính nhất quán và sự ràng buộc của CSDL

Trang 28

- Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình.

1.2.2.2.Đối tượng làm việc của SQL Server.

SQL làm việc và lưu trữ dữ liệu trên các đối tượng gọi là các bảng (tổng quát là các quan hệ) dữ liệu hai chiều Các bảng này bao gồm một hoặc nhiều cột

và hàng Các cột gọi là các trường ,các hàng gọi là các bản ghi Cột với tên gọi và kiểu dữ liệu (kiểu dữ liệu của mỗi cột là duy nhất) xác định tạo nên cấu trúc của bảng Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL SQL Server là hệ quản trị cơ sở dữ liệu theo mô hình client-server Phân chia công việc giữa client và server như sau:

- Client-side:

+ Phải xác định thông tin cần server cung cấp trước khi gởi yêu cầu đến server

+ Có trách nhiệm hiển thị toàn bộ thông tin cho user

+ Phải làm việc với các result set hơn là làm việc trực tiếp trên các bảng của database

+ Phải làm mọi thao tác xử lý dữ liệu

+ Cung cấp tất cả định dạng của dữ liệu và thông tin cần thiết để tạo report

- Server-side:

+ Database engine đảm nhiệm việc lưu trữ (storage), cập nhật (update) và cung cấp (retrieval) thông tin trong hệ thống

+ Tạo result set theo yêu cầu của ứng dụng client

+ Không có giao diện người dùng (user interface) Tự thân SQL Server là không có giao diện người dùng, ngoại trừ một số tool giúp admin quản trị hệ thống

+ Hoàn toàn độc lập với các ứng dụng client

+ Không chịu trách nhiệm việc hiển thị thông tin cho người dùng từ các kết quả thực thi các query

Trang 29

1.2.3.Các định nghĩa cơ bản trong SQL.

1.2.3.1.Định nghĩa cơ sở dữ liệu, bảng, cột.

- Cơ sở dữ liệu: là tên của cơ sở dữ liệu chúng ta muốn sử dụng

- Bảng: Là 1 bảng giá trị nằm trong cơ sở dữ liệu

- Cột là 1 giá trị nằm trong bảng Dùng để lưu trữ các trường dữ liệu

Ví dụ:

- Như vậy ta có thể hiểu như sau:

+ Một cơ sở dữ liệu có thể bao gồm nhiều bảng

+ Một bảng có thể bao gồm nhiều cột

+ Một cột có thể có hoặc không có những thuộc tính

1.2.3.2.Định nghĩa 1 số thuật ngữ.

NULL : Giá trị cho phép rỗng

AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động)

UNSIGNED : Phải là số nguyên dương

PRIMARY KEY : Cho phép nó là khóa chính trong bảng

1.2.3.3.Loại dữ liệu trong SQL.

Ở đây chúng tả chỉ giới thiệu 1 số loại thông dụng: 1 số dữ liệu khác có thể tham khảo trên trang chủ của SQL

Trang 30

1.2.4.Những cú pháp cơ bản.

- Cú pháp tạo 1 cơ sở dữ liệu: CREATE DATABASE tên_cơ_sở_dữ_liệu;

- Cú pháp sử dụng cơ sở dữ liệu: Use tên_database;

- Cú pháp thoát khỏi cơ sở dữ liệu: Exit

- Cú pháp tạo 1 bảng trong cơ sở dữ liệu:

CREATE TABLE user (<tên_cột> <mô_tả>,…,<tên_cột_n> …

<mô_tả_n>)

- Hiển thị có bao nhiều bảng: show tables;

- Hiển thị có bao nhiêu cột trong bảng: show columns from table;

INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng);

- Truy xuất dữ liệu:

Cú pháp:

Trang 31

SELECT tên_cột FROM Tên_bảng;

- Truy xuất dữ liệu với điều kiện:

Cú pháp:

SELECT tên_cột FROM Tên_bảng WHERE điều kiện;

- Truy cập dữ liệu và sắp xếp theo trình tự:

Cú pháp:

SELECT tên_cột FROM Tên_bảng

WHERE điều kiện (có thể có where hoặc không)

ORDER BY Theo quy ước sắp xếp

Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống dưới), DESC (từ dưới lên trên)

- Truy cập dữ liệu có giới hạn:

Cú pháp:

SELECT tên_cột FROM Tên_bảng

WHERE điều kiện (có thể có where hoặc không)

LIMIT vị trí bắt đầu, số record muốn lấy ra

- Cập nhật dữ liệu trong bảng:

Cú pháp:

Update tên_bảng set tên_cột=Giá trị mới

WHERE (điều kiện)

Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các record trong bảng

- Xóa dữ liệu trong bảng:

Cú pháp:

DELETE FROM tên_bảng WHERE (điều kiện)

Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các record trong bảng

Trang 32

1.2.5.Các chế độ bảo mật.

1.2.5.1.Standard.

Là chế độ mặc định, ở chế độ này SQL Server đảm trách toàn bộ việc quản

lý các account của nó, SQL server xác nhận một user và kiểm tra password/login trên tất cả connection đến SQL Server

1.2.5.2 Windows NT Integrated.

Chế độ này sử dụng cơ chế kiểm tra của Windows NT server cho tất cả connection Khi SQL Server chạy ở chế độ này, Windows NT sẽ quản lý tất cả user kết nối vào thông qua ACL (Acces Control List) của nó Tiện ích của chế độ bảo mật này là cho phép user sử dụng một password duy nhất để truy xuất tới tài nguyên trong domain và thời hạn cũng như việc mã hóa password qua mạng Như vậy, user không cần login lần thứ 2 khi truy xuất SQL Server Một user login vào Windows NT server hoặc được gán connection hoặc bị từ chối kế nối đến SQL server dựa trên thuộc tính của account trên NT server Việc gán các quyền truy cập vào SQL server cho một login vào NT server tạo ra một login được ủy quyền, connection thông qua login được ủy quyền gọi là kết nối được ủy thác (trusted connection)

1.2.5.3.Mixed.

Kết hợp cả hai chế độ Standard và Integrated Khi một user kết nối đến SQL Server trong chế độ mixed, trước tiên NT sẽ kiểm tra xem login name đã có thiết lập một kết nối ủy thác nào hay không Nếu không tìm thấy kết nối ủy thác nào thì sau đó SQL Server sẽ kiểm tra login name và password Nếu cũng không nhận biết login được yêu cầu trên server, truy cập bị từ chối

Trang 33

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1.Tập mờ

Trong lý thuyết tập hợp, một phần tử được xác định rõ ràng là thuộc hoặc không thuộc một tập hợp và được kí hiệu lần lượt là 1 và 0 tức là một phần tử bất

kỳ chỉ có hai khả năng là thuộc hoặc không thuộc tập hợp Tuy nhiên, lý thuyết này không thể giải quyết được những bài toán phức tạp này sinh trong thực tế Ví dụ: tập hợp những người cao là từ 1m75 trở lên được chọn vào đội bóng rổ Vậy người cao 1m74 sẽ không thuộc tập hợp những người cao và bị loại liệu đã hợp lý

Do vậy, một cách tiếp cận mới đã và đang được phát triển nhằm giải quyết những vấn đề trên Đó là lý thuyết tập mờ (Fuzzy Set) do giáo sư Lotfi A Zadeh của trường đại học California – Mỹ sáng lập, bắt đầu với bài báo “Fuzzy Sets” năm

1965 Công trình này nhanh chóng được các nhà nghiên cứu đón nhận Ý tưởng của Zadeh về lý thuyết tập mờ là biểu diễn các thông tin trừu tượng, không chắc chắn như chiều cao (cao – thấp), độ tuổi (trẻ – già) v.v bằng khái niệm toán học gọi là tập mờ Phần tiếp theo sẽ cho thấy sự khác biệt giữa tập rõ và tập mờ

2.1.1.Khái niệm tập rõ

Định nghĩa 2.1: Cho tập nền X với x là phần tử của tập X A là một tập rõ

trên tập X, với x là phần tử thuộc tập hợp A, ta có x A hoặc x A và (x) được gọi

là hàm thuộc hay hàm đặc trưng của tập hợp A [2]

Trang 34

trụ tham chiếu U là chắc chắn thuộc tập A hoặc chắc chắn không thuộc tập A Như vậy, để xem một phần tử có là là thành viên của tập A hay không, ta gán cho phần

tử đó giá trị 1 nếu phần tử đó chắc chắn thuộc A, và giá trị 0 nếu nó không thuộc

về tập hợp A, tức là ta có thể xây dựng một hàm thành viên (hay hàm thuộc) để đánh giá một phần tử có thuộc tập A hay không :

Rõ ràng, hàm thuộc μA sẽ xác định tập con cổ điển A trên tập vũ trụ U với

μA chỉ nhận giá trị trong tập hợp {0,1}.Ngược lại, lý thuyết tập mờ cho phép đánh giá nhiều mức độ khác nhau về khả năng một phần tử có thể thuộc về một tập hợp

Định nghĩa 2.2: Cho tập nền X với x là phần tử của tập X Một tập mờ F

trên tập X được định nghĩa bởi một hàm thành viên hay còn gọi là hàm thuộc F(x),

đo “mức độ” mà phần tử x thuộc về tập F thỏa mãn điều kiện với xX, 0 F(x)1

(2.2)Nếu F(x) = 1 thì x F hoàn toàn

Nếu F(x) = 0 thì x F hoàn toàn

Nếu hàm thuộc F(x) chỉ nhận giá trị 1 hoặc 0, tức là các phần tử trong tập hợp F thuộc hoặc không thuộc F một cách rõ ràng thì tập mờ trở thành tập rõ Như vậy tập rõ chính là một trường hợp đặc biệt trong tập mờ

2.1.3.Tập mờ trực cảm

Tập mờ trực cảm (Intuitionistic fuzzy sets) được đề xuất bởi Krassimir Atanassov vào năm 1983 là một sự mở rộng của tập mờ Zadeh năm 1965 Nó đặc

biệt hữu dụng khi làm việc với các đối tượng ngữ nghĩa tự nhiên, trong đó việc đưa

ra độ thuộc không thôi chưa đủ Ví dụ khi đưa ra quyết định một vấn đề, trong y học, bầu cử, kinh doanh.v.v, đặc biệt là khi tập hợp ý kiến nhiều chuyên gia, bên cạnh việc ủng hộ còn có sự phản đối và một tỷ lệ do dự nhất định (bỏ phiếu trắng hoặc phiếu không hợp lệ)

Trang 35

Định nghĩa 2.3: Xét X là một tập không rỗng, một tập mờ trực cảm A trên

không gian nền X cho bởi:

(2.3)

trong đó , thỏa mãn điều kiện:

(2.4)với µA(x), νA(x) lần lượt là độ thuộc và độ không thuộc của x vào tập A,

πA(x) = 1 µA(x) νA(x) là độ do dự (không rõ x thuộc hay không thuộc vào A) Ta thấy

(2.5)

Kí hiệu IFS(X) là tập các tập mờ trực cảm trên không gian nền X Như vậy, theo định nghĩa trên thì tập mờ thường A′ là một trường hợp riêng của tập mờ trực cảm:

(2.6)với độ do dự là 0:

(2.7)Tập mờ trực cảm tổng quát hơn tập mờ Nó cho phép chúng ta có thể biểu diễn những thông tin, trí thức không nhất quán, ứng dụng đa dạng trong những bài toán thực tiễn Đặc biệt trong trường hợp tổng hợp ý kiến của con người về một vấn đề, trong đó có 3 câu trả lời cơ bản: (1) Có, tôi đồng ý; (2) Không, tôi phản đối; (3) Tôi không biết, tôi không chắc chắn

2.2.Các đặc trưng của tập mờ

Các đặc trưng của một tập mờ A trên U, là những thông tin để mô tả về các phần tử liên quan đến tập mờ A, những đặc trưng này còn chỉ rõ sự khác biệt của tập mờ A, so với những tập con cổ điển khác của U

Định nghĩa 2.4:

Trang 36

Giá đỡ của tập mờ A (Support) là tập các phần tử có giá trị hàm thuộc lớn hơn 0 trong tập mờ A, được ký hiệu và xác định như sau:

Định nghĩa 2.5:

Chiều cao của tập mờ A (Hight) là giá trị lớn nhất mà hàm thuộc có thể lấy trong tập mờ A, được ký hiệu và xác định như sau:

Định nghĩa 2.6:

Tập mờ A gọi là chuẩn hóa nếu chiều cao của nó h(A) = 1

Như vậy tập mờ A trên U được gọi là chuẩn hóa, nếu chắc chắn có ít nhất 1 phần tử của U là thật sự thuộc A

Trang 37

Chú ý rằng - nhát cắt của tập mờ A là 1 tập “rõ”, các phần tử của Aα hoàn toàn được xác định.

2.3.Số mờ và các tập con mờ lồi

Khi U là một tập số thực R (hoặc là tập con của tập R), biểu diễn các giá trị bằng số như chiều cao, khoảng cách, trọng lượng, tuổi tác, mức lương, nhiệt độ thì các tập con mờ trên U biểu diễn các giá trị ‘mờ’ như gần, xa, cao, thấp, nặng, nhẹ, trẻ, già Các tập con mờ trên R có hàm thuộc là hàm lồi được gọi là các tập mờ lồi, đặc trưng cho các ‘đại lương mờ’ trên tập số thực

2.3.1.Tập mờ lồi và số mờ

Định nghĩa 2.10:

Một tập con mờ A trên tập số thực R là tập mờ lồi nếu với mọi cặp phần tử

a, b R và với mọi số thực [0, 1], hàm thuộc của A thỏa mãn:

Tập con mờ A trên tập số thực được gọi là một số mờ, nếu A là tập mờ lồi

Trang 38

m

Đồ thị của các hàm thuộc tam giác (không đối xứng và đối xứng) có dạng:

Hình 2.1.Các tập mờ tam giác 2.3.2.2.Tập mờ hình thang

Hàm thuộc của tập mờ này gọi là hàm thuộc hình thang, xác định bởi bộ 4 giá trị a, b, c, d theo công thức sau:

Trang 39

Đồ thị của hàm thuộc hình thang có dạng sau:

Hình 2.2.Tập mờ hình thang 2.3.2.3.Tập mờ L

Hàm thuộc của tập mờ này gọi là hàm thuộc L, được xác định như sau:

Trang 40

Đồ thị của hàm thuộc L có dạng sau:

Hình 2.3.Tập mờ L 2.3.2.4.Tập mờ Gamma tuyến tính (hay L trái)

Hàm thuộc của tập mờ này gọi là hàm thuộc Gamma tuyến tinh (hay hàm thuộc ‘L- trái’, có dạng ngược với hàm thuộc L), được xác định bởi hai tham số a

và b theo công thức sau:

Đồ thị của hàm thuộc gama tuyến tính có dạng sau:

Ngày đăng: 08/12/2016, 17:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w