1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 2 CSDL trong SQL Server SQL Server 2005

72 704 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 72
Dung lượng 679,5 KB

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

Nội dung

SQL Server thuộc họ các sản phẩm và công nghệ mà kho dữ liệu phù hợp với các yêu cầu môi trường xử lý giao dịch trực tuyến (Online Transaction Processing OLTP) và xử lý phân tích trực tuyến (Online Analytical Processing OLAP). SQL Server là HQTCSDL quan hệ với các tính năng sau: Quản lý kho dữ liệu cho các giao dịch (Transactions) và phân tích (Analysis). Khả năng lưu trữ dữ liệu với các kiểu dữ liệu có miền giá trị rộng, bao gồm text, numeric, Extensible Markup Language (XML) và các đối tượng lớn… Đáp ứng các yêu cầu từ các ứng dụng Client. Sử dụng TSQL và XML để gởi các yêu cầu giữa ứng dụng client và Server. HQTCSDL SQL Server đáng tin cậy đối với: Duy trì các mối quan hệ giữa các đối tượng dữ liệu trong một CSDL. Bảo đảm rằng dữ liệu được lưu trữ đúng đắn, các quy tắc định nghĩa các quan hệ giữa các đối tượng dữ liệu là không bị vi phạm. Khôi phục tất cả dữ liệu khi hệ thống bị lỗi.

Trang 1

2.3 Sao chép cơ sở dữ liệu

2.4 Gán và tách cơ sở dữ liệu

2.5 Nhập và xuất cơ sở dữ liệu

2.6 Kiểu dữ liệu và cách khai báo

2.7 Bảng

2.8 View

Trang 2

2.1 Giới thiệu CSDL trong SQL

Server SQL Server thuộc họ các sản phẩm và công nghệ mà kho dữ liệu phù hợp với

các yêu cầu môi trường xử lý giao dịch

trực tuyến (Online Transaction

Processing - OLTP) và xử lý phân tích

trực tuyến (Online Analytical Processing

- OLAP) SQL Server là HQTCSDL quan hệ với các tính năng sau:

•Quản lý kho dữ liệu cho các giao dịch

(Transactions) và phân tích (Analysis).

•Khả năng lưu trữ dữ liệu với các kiểu dữ

liệu có miền giá trị rộng, bao gồm text,

numeric, Extensible Markup Language (XML)

và các đối tượng lớn…

Trang 3

2.1 Giới thiệu CSDL trong SQL

Server

•Đáp ứng các yêu cầu từ các ứng dụng

Client.

•Sử dụng T-SQL và XML để gởi các yêu cầu

giữa ứng dụng client và Server.

•HQTCSDL SQL Server đáng tin cậy đối với:

•Duy trì các mối quan hệ giữa các đối tượng

dữ liệu trong một CSDL.

•Bảo đảm rằng dữ liệu được lưu trữ đúng

đắn, các quy tắc định nghĩa các quan hệ giữa

các đối tượng dữ liệu là không bị vi phạm.

•Khôi phục tất cả dữ liệu khi hệ thống bị lỗi.

Trang 4

2.1.1 Các cơ sở dữ liệu xử lý giao dịch trực tuyến (Online transaction

processing – OLTP)

•Các table quan hệ tổ chức dữ liệu

trong một cơ sở dữ liệu OLTP để giảm thiểu thông tin dư thừa và tăng tốc độ cập nhật

•SQL Server cho phép số lượng lớn

người dùng thực thi các giao dịch và

sự thay đổi đồng thời dữ liệu theo

thời gian thực trong các cơ sở dữ liệu

OLTP

Trang 5

2.1.2 Các cơ sở dữ liệu xử lý phân tích trực tuyến (online analytical

processing - OLAP)

Công nghệ OLAP được sử dụng để tổ

chức và tổng hợp số lượng dữ liệu lớn để

một người phân tích có thể đánh giá dữ

liệu một cách nhanh chóng và theo thời

gian thực.

Microsoft SQL Server Analysis Services

tổ chức dữ liệu này để hỗ trợ các giải

pháp đối với doanh nghiệp lớn, xuất phát

từ các báo cáo công ty và sự phân tích để

mô hình hóa dữ liệu và hỗ trợ quyết định.

Trang 6

2.1.3 Cân nhắc khi hoạch định cơ

sở dữ liệu

•Mục tiêu của kho dữ liệu: Các

CSDL OLTP và OLAP có các mục tiêu

khác nhau và vì vậy các yêu cầu thiết

kế cũng sẽ khác nhau.

•Tần suất giao dịch: Một thiết kế

đạt hiệu suất cao liên quan đến một

mức độ thích hợp của sự chuẩn hóa,

các chỉ mục, và sự phân chia dữ liệu có thể đạt được một mức độ rất cao của

tần suất giao dịch.

Trang 7

2.1.3 Cân nhắc khi hoạch định cơ

sở dữ liệu

•Khả năng tăng trưởng về khía cạnh vật

lý của kho lưu trữ: Số lượng dữ liệu lớn đòi hỏi

phần cứng phù hợp đối với bộ nhớ, dung lượng

đĩa cứng, và khả năng của đơn vị xử lý trung tâm.

•File location: Nơi mà bạn đặt các tập tin có

thể có tác động ảnh hưởng về hiệu suất thực thi Nếu có thể, bạn nên sử dụng nhiều ổ đĩa, dàn trải các tập tin cơ sở dữ liệu của bạn trên nhiều hơn một đĩa Điều này cho phép SQL Server nhận

được sự thuận lợi của việc có nhiều kết nối và

nhiều đầu đọc đĩa cho việc đọc và ghi dữ liệu

hiệu quả.

Trang 8

2.1.4 Cấu trúc cơ sở dữ liệu

SQL Server quản lý trực tiếp các CSDL Mỗi CSDL SQL Server sẽ quản lý các cấu trúc vật lý của nó Việc quản trị cơ sở dữ liệu có một số

đặc điểm sau:

•Để Client khai thác CSDL trước hết phải

thực hiện kết nối đến Server quản trị CSDL đó.

•Chỉ thực hiện khai thác với các CSDL có tên trong danh sách các CSDL mà Server quản lý.

•Không có các phương thức mở CSDL trực

tiếp từ tập tin như Access.

•Khi đã kết nối đến Server, Client chỉ thực hiện được quyền khai thác theo quy định đã

định sẵn trong CSDL (phân quyền trong CSDL).

Trang 9

2.1.4 Cấu trúc cơ sở dữ liệu

•Cơ sở dữ liệu trong SQL Server lưu trữ theo 2 phần: phần dữ liệu (gồm

một tập tin bắt buộc *.mdf và các tập tin phụ *.ndf) và phần nhật ký (*.ldf)

Trang 10

2.1.5 Sơ đồ quản trị cơ sở dữ liệu

•Cơ sở dữ liệu trong SQL Server

chia thành 2 loại: Cơ sở dữ liệu hệ

thống (do SQL Server sinh ra khi cài

đặt) và cở sở dữ liệu người dùng (do

người dùng tạo ta)

Trang 11

2.1.5 Sơ đồ quản trị cơ sở dữ liệu

•Master: Ghi lại tất cả thông tin

hệ thống của SQL Server như: tài

khoản đăng nhập, các cài đặt cấu

hình hệ thống.

•Tempdb: Cơ sơ dữ liệu này là tài nguyên dùng chung cho tất cả các người dùng truy cập đến một thể

hiện của SQL Server Nó lưu giữ các tất cả các bảng và thủ tục nội tại

tạm thời.

Trang 12

2.1.5 Sơ đồ quản trị cơ sở dữ liệu

•Model: Được sử dụng như một

mẫu cho tất cả các CSDL được tạo ra trong một thể hiện của SQL Server

•Msdb: được sử dụng bởi SQL

Server, Management Studio và SQL

Server Agent để lưu trữ dữ liệu, bao

gồm các thông tin lập lịch và thông

tin quá trình backup restore hệ thống

Trang 13

2.1.6 Cấu trúc vật lý của

CSDL

Như cấu trúc các CSDL hệ quản trị CSDL thông thường, SQL Server cũng quản lý tập tin dữ liệu của CSDL ở

dạng vật lý theo trang (page) và

phân đoạn (extent)

Trang 15

2.1.6 Cấu trúc vật lý của

CSDL

•Extent: là đơn vị dùng chứa các

Table và Index Mỗi extent có 8 page hay 64KB SQL Server có 2 kiểu

Trang 16

2.1.6 Cấu trúc vật lý của

CSDL

•Cấu trúc Extent như sau:

Trang 17

2.2 Tạo cơ sở dữ liệu

• Trong khung Object Explorer, kích nút phải chuột tại mục Databases, chọn New Database Cửa sổ New

Database xuất hiện như sau:

Trang 18

2.3 Sao chép cơ sở dữ liệu

Cách 1:

• Kích chuột phải vào CSDL muốn sao chép,

chọn Task/ Copy Database, chọn Next.

• Cửa sổ Select a Source Server xuất hiện,

- Chọn Server nguồn chứa database bạn

cần sao chép trong mục Source Server.

- Kích vào biểu tượng để lựa chọn

Server.

- Chọn phương pháp chứng thực quyền

truy cập Server là Use Windows

Authentication hay Use SQL Server

Authentication, kích chọn Next.

Trang 19

2.3 Sao chép cơ sở dữ liệu

Cách 1:

• Cửa sổ Select a Destination

Server tương tự như cửa sổ Select

a Source Server, chọn Server đích

chứa database bạn cần sao chép tới

trong mục Source Server Mặc

định là local (Server cục bộ), kích

chọn Next

Trang 20

2.3 Sao chép cơ sở dữ liệu

Cách 1:

• Cửa sổ Select the Trasfer Method yêu

cầu bạn chọn phương thức truyền.

- Use the detach and attach method:

Sử dụng phương thức truyền này nhanh hơn, nhưng yêu cầu CSDL ở chế độ

offline Phương thức này tốt nhất để

nâng cấp CSDL hay di chuyển CSDL rất lớn Yêu cầu khi sử dụng lựa chọn này thì không có user nào được phép kết nối đến CSDL nguồn.

- Use the SQL Managerment Object

method: Phương thức này chậm hơn

nhưng cho phép database nguồn có thể vẫn còn ở chế độ online Kích chọn

Next

Trang 21

2.3 Sao chép cơ sở dữ liệu

Cách 1:

• Trong cửa sổ Select Database, bạn

chọn CSDL cần sao chép, kích chọn

Next.

• Cửa sổ Configure Destination

Database xuất hiện yêu cầu bạn :

- Nhập tên Database mới vào mục

Destination Database

- Chọn thư mục chứa các tập tin

CSDL mới trong mục Destination

Folder

Trang 22

(Integration Services package) với tên được

chỉ định trong mục Package name Chọn

Next để tiếp tục.

• Trong cửa sổ Schedule the Package, bạn chọn Run immediately nếu muốn thực hiện

sao chép database ngay Còn chọn mục

Schedule nếu muốn lập lịch trình để sao

chép database Chọn Next để tiếp tục.

• Trong cửa sổ Complete the Wizard, chọn

Finish

Trang 23

2.3 Sao chép cơ sở dữ liệu

• Bước 3: Khởi động lại các dịch vụ

được dừng ở bước 1.

Trang 24

2.4 Gán và tách cơ sở dữ liệu

2.4.1 Gán cơ sở dữ liệu

• Gán (Attach) cơ sở dữ liệu là kỹ thuật

ghép nối tập tin CSDL vào thể hiện,

Các bước thực hiện như sau:

• Trong khung Object Explorer của cửa

sổ SQL Server Management Studio,

Chọn Instance cần Attach CSDL kích

nút phải tại mục Databases, chọn

Attach, cửa sổ Attach Databases xuất hiện như sau:

Trang 25

2.4.1 Gán cơ sở dữ liệu

Kích vào nút Add, chọn đến thư mục

chứa tập tin có đuôi “mdf” của cơ sở dữ liệu cần Attach, Chọn Ok, Chọn tiếp OK

Trang 26

2.4.2 Tách cơ sở dữ liệu

•Tách (Detach) là bước thực hiện

loại bỏ CSDL ra khỏi thể hiện, thể hiện không quản lý CSDL nhưng khác với

xóa CSDL là các tập tin chứa CSDL vẫn còn

•Kích nút phải lên CSDL cần tách,

chọn Tasks/ Detach

•Trong cửa sổ Detach Database,

Nhấn Ok

Trang 27

2.5 Nhập và xuất dữ liệu

2.5.1 Nhập dữ liệu

Nhập (Import) dữ liệu từ ngoài vào CSDL SQL Server, dữ liệu có thể từ hệ quản trị CSDL khác hoặc CSDL khác của SQL

Server.

•Kích chuột phải lên Databases cần

Import dữ liệu, chọn Tasks/ Import Data

•Trong cửa sổ Welcome to SQL Server Import and Export Wizard, bạn chọn Next

Trang 28

2.5.1 Nhập dữ liệu

Cửa sổ Choose a Data Source

xuất hiện:

Trang 29

2.5.1 Nhập dữ liệu

•Chọn kiểu nguồn dữ liệu trong

mục Data Source (SQL Server,

Oracle, Access, )

•Chọn tập tin cơ sở dữ liệu trong

mục file name

•Chọn Next

Trang 31

2.5.1 Nhập dữ liệu

•Chọn tên Server trong mục

Server name

•Chọn tên CSDL trong mục

Database (có trước hoặc tạo tại thời

điểm này bằng cách chọn New)

•Chọn Next.

Trang 32

2.5.1 Nhập dữ liệu

Trong cửa sổ Specify Table Copy or Query: yều cầu bạn chọn cách chuyển

dữ liệu

•Copy data from one or more

tables or views: Sao chép dữ liệu từ

một hoặc nhiều bảng hay view

•Write a query to specify the

data to transfer: Viết một câu truy

vấn để chỉ định dữ liệu cần chuyển

Trang 33

2.5.1 Nhập dữ liệuTrong cửa sổ Select Source Tables and

Trang 34

2.5.2 Xuất dữ liệu

Dùng để xuất (export) dữ liệu từ

một CSDL của SQL Server ra một hệ quản trị CSDL khác hoặc một CSDL

khác của SQL Server

Các bước thực hiện Export dữ liệu tương tự như Import nhưng thực hiện Data Source là SQL Server, còn

Destination là hệ quản trị CSDL khác hoặc CSDL khác của SQL Server

Trang 35

2.6 Kiểu dữ liệu và cách khai

báo

•Một số kiểu dữ liệu mới được giới

thiệu trong phiên bản cơ sở dữ liệu SQL Server 2005 là xml, char(max) và

varchar(max).

•Việc chọn kiểu dữ liệu phải phù hợp

dữ liệu của thế giới thực, đồng thời nó

còn phụ thuộc vào các kiểu dữ liệu có

Trang 36

2.6 Kiểu dữ liệu và cách khai

báo

•Các kiểu dữ liệu trong SQL Server

2005 được phân thành 4 nhóm:

•System Data Types

•User-Defined Data Types

•User-Defined Types

•Xml Schema Collections

Trang 37

2.6 Kiểu dữ liệu và cách khai

Trang 38

2.6.1 Nhóm Exact Numberics

•BIT: kiểu số nguyên 1 byte để lưu trữ một trong hai giá trị 0 hay 1 Ví dụ: Cột thể hiện giới tính là Nam (1) hay

Nữ (0) được khai báo như sau:

•Gioitinh bit not null default 1

•TINYINT: kiểu số nguyên 1 byte để lưu trữ các giá trị nằm trong khoảng từ

0 đến 255

Trang 39

2.6.1 Nhóm Exact

Numberics

•SMALLINT: kiểu số nguyên 1 byte

để lưu trữ các giá trị nằm trong khoảng

Trang 40

2.6.1 Nhóm Exact Numberics

DECIMAL hoặc NUMERIC: kiểu dữ

liệu sử dụng 9 byte để lưu trữ số chấm

động trong khoảng -1038+1 đến 1038-1

•SMALLMONEY: dùng 4 byte để lưu

trữ số kiểu tiền tệ trong khoảng

-214.748,3648 đến -214.748,3647

•MONEY: dùng 8 byte để lưu trữ số

kiểu tiền tệ trong khoảng

-922.337.203.685.477,5808 đến

922.337.203.685.477,5807

Trang 42

2.6.3 Nhóm Date and Time

•DATETIME: dùng 8 byte để lưu giá

trị thời gian xảy ra trong khoảng từ

1/1/1753 đến 31/12/9999

•SMALLDATETIME: dùng 4 byte để

lưu giá trị thời gian xảy ra trong

khoảng từ 1/1/1900 đến 6/6/2079

Trang 43

2.6.4 Nhóm Character Strings

•CHAR: cho phép bạn lưu chuỗi có

chiều dài cố định tối đa là 8000 ký tự

không hỗ trợ Unicode.

Ví dụ: SOCMND char(9) not null

•VARCHAR: cho phép bạn lưu chuỗi có

chiều dài cố định tối đa là 8000 ký tự

không unicode, khi bạn sử dụng kiểu này thì đòi hỏi dữ liệu phải có chiều dài không thay đổi.

•TEXT: khai báo chuỗi có chiều dài thay

đổi, các ký tự không hỗ trợ Unicode và

chiều dài tối đa của chuỗi là 2^31-1 ký tự.

Trang 44

2.6.4 Nhóm Character Strings

•CHAR: cho phép bạn lưu chuỗi có

chiều dài cố định tối đa là 8000 ký tự

không unicode.

Ví dụ: SOCMND char(9) not null

•VARCHAR: cho phép bạn lưu chuỗi có

chiều dài cố định tối đa là 8000 ký tự

không unicode, khi bạn sử dụng kiểu này thì đòi hỏi dữ liệu phải có chiều dài không thay đổi.

•TEXT: khai báo chuỗi có chiều dài thay

đổi, các ký tự không hỗ trợ Unicode và

chiều dài tối đa của chuỗi là 2^31-1 ký tự.

Trang 45

2.6.5 Nhóm Character Strings

•NCHAR [ ( n ) ]: khai báo chuỗi ký tự có

chiều dài cố định, các ký tự hỗ trợ Unicode và có

độ dài là n byte N phải có giá trị từ 1 đến 4.000, nếu không có khai báo n thì mặc định n=1.

•NVARCHAR [ ( n | max ) ]: khai báo chuỗi

có chiều dài thay đổi, các ký tự hỗ trợ Unicode

và có độ dài tối đa là n byte N phải có giá trị từ

1 đến 4.000 Nếu khai báo max thì kích thước

lưu trữ tối đa là 2^31-1 byte.

•NTEXT: khai báo chuỗi có chiều dài thay đổi

hỗ trợ Unicode, chiều dài tối đa là 2^30-1 ký tự

Trang 46

2.6.6 Nhóm Binary Strings

•BINARY [ ( n ) ]: Kiểu dữ liệu nhị

phân có độ dài cố định là n byte N nhận giá trị từ 1 đến 8000

•VARBINARY [ ( n | max) ]: Kiểu dữ

liệu nhị phân có độ dài thay đổi N nhận giá trị từ 1 đến khai báo Max cho biết

kích thước tối đa là 2^31-1 bytes.

•IMAGE: Cho phép lưu dữ liệu kiểu

dữ liệu nhị phân thay đổi có chiều dài

tối đa là 2^31-1 bytes.

Trang 47

2.6.7 Nhóm Orther Data

Types

•SQL_VARIANT: Kiểu dữ liệu cho

phép lưu trữ các giá trị với nhiều kiểu

dữ liệu khác nhau ngoại trừ kiểu text,

ntext, image, timestamp và

sql_variant.

•TIMESTAMP: Kiểu dữ liệu nhị

phân tự động tạo ra duy nhất trong

CSDL Kiểu dữ liệu này có kích thước 8 byte

Trang 48

2.6.7 Nhóm Orther Data

Types

•UNIQUEIDENTIFIER: Kiểu dữ liệu

nhị phân tự động tạo ra duy nhất

trong CSDL Kiểu dữ liệu này có kích thước 16 byte

•XML: Kiểu dữ liệu dùng để lưu trữ

các tài liệu hay đoạn (fragment) XML, dung lượng tối đa của kiểu dữ liệu này

là 2 GB

Trang 50

2.7.1 Tạo bảng

•Column Name: Chứa tên cột của bảng

sẽ tạo.

•Data type: Chỉ ra kiểu dữ liệu cho cột.

•Allow Nulls: Nếu được chọn thì cột này chấp nhận giá trị null (rỗng).

•Nhập tên cột và kiểu dữ liệu của nó.

•Chọn các cột khóa chính (Primary key), kích chuột vào biểu tượng để thiết lập.

•Kích vào nút Save hoặc nhấn Ctrl + S để lưu.

Trang 51

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Quan hệ giúp tránh được nguy cơ dữ liệu không nhất quán Nếu bảng có

quan hệ với bảng khác, nó sẽ có một

cột là khóa chính trong một bảng

khác Cột đó gọi là khóa ngoại

(Foreign key).

Sau khi hoàn tất việc thiết kế các

bảng dữ liệu liên quan, bạn tiến hành tạo quan hệ giữa chúng với nhau bằng đối tượng Database Diagram

Trang 52

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Nếu trước đó bạn chưa tạo quan hệ cho CSDL, khi chọn vào ngăn

Database Diagram thì thông báo xuất hiện như sau:

Trang 53

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Kích nút phải chuột lên mục

Database Diagrams, chọn New

Database Diagram Cửa sổ Add

Table xuất hiện như sau:

Trang 54

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Chọn bảng cần tạo quan hệ rồi nhấn

nút Add, nhấn Close để đóng cửa sổ

này lại Cửa sổ Database Diagram

xuất hiện như sau:

Trang 55

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Thiết lập quan hệ giữa các bảng

bằng cách chọn cột dữ liệu là khóa

chính ở bảng thứ nhất rồi kéo thả vào cột dữ liệu ứng với khóa ngoại ở bảng thứ hai Cửa sổ Tables and Columns

xuất hiện như sau:

Trang 56

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

•Chọn cột dữ liệu làm khóa chính và khóa ngoại, kích OK Cửa sổ Foreign

Key Relationship xuất hiện Bạn hiệu chỉnh một số thuộc tính cần thiết rồi

kích OK

•Lưu đối tượng Diagram

Trang 57

2.7.2 Thiết lập quan hệ cho cơ sở dữ liệu

Trang 58

2.7.3 Thêm ràng buộc cho bảng

SQL Server 2005 cho phép bạn ràng buộc giá trị trong một cột xác định để

dữ liệu không thích hợp sẽ không được thêm vào Kiểu dữ liệu của cột cũng

được phép ràng buộc giá trị trong cột, nhưng nó không được xem là ràng

buộc

Ngày đăng: 23/06/2017, 16:26

HÌNH ẢNH LIÊN QUAN

2.1.5. Sơ đồ quản trị cơ sở dữ liệu - Chương 2 CSDL trong SQL Server  SQL Server 2005
2.1.5. Sơ đồ quản trị cơ sở dữ liệu (Trang 10)
2.1.5. Sơ đồ quản trị cơ sở dữ liệu - Chương 2 CSDL trong SQL Server  SQL Server 2005
2.1.5. Sơ đồ quản trị cơ sở dữ liệu (Trang 11)
2.1.5. Sơ đồ quản trị cơ sở dữ liệu - Chương 2 CSDL trong SQL Server  SQL Server 2005
2.1.5. Sơ đồ quản trị cơ sở dữ liệu (Trang 12)
Bảng Table – dbo.Table_1 hiển thị  bên phải màn hình Management  Studio. Bảng này gọi là Table - Chương 2 CSDL trong SQL Server  SQL Server 2005
ng Table – dbo.Table_1 hiển thị bên phải màn hình Management Studio. Bảng này gọi là Table (Trang 49)
Bảng khác. Cột đó gọi là khóa - Chương 2 CSDL trong SQL Server  SQL Server 2005
Bảng kh ác. Cột đó gọi là khóa (Trang 51)
Bảng bằng cách chọn cột dữ - Chương 2 CSDL trong SQL Server  SQL Server 2005
Bảng b ằng cách chọn cột dữ (Trang 55)

TỪ KHÓA LIÊN QUAN

w