1. Trang chủ
  2. » Công Nghệ Thông Tin

slide co so du lieu database

155 943 3

Đ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 155
Dung lượng 2,29 MB

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

Nội dung

http://www.mica.edu.vn/perso/Le-Nội dung môn học• Chương 1: Đại cương về các hệ cơ sở dữ liệu • Chương 2: Các mô hình dữ liệu • Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu SQL • Ch

Trang 1

GIẢNG VIÊN: TS.LÊ THỊ LAN

Trang 3

http://www.mica.edu.vn/perso/Le-Nội dung môn học

• Chương 1: Đại cương về các hệ cơ sở dữ liệu

• Chương 2: Các mô hình dữ liệu

• Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu (SQL)

• Chương 4: Phụ thuộc hàm và chuẩn hóa CSDL quan

Trang 4

Kế hoạch học tập

• Lý thuyết

• Bài tập trên lớp, bài tập tuần (cá nhân,

nhóm sinh viên) đánh giá giữa kỳ

• Bài tập lớn  tham gia vào điểm đánh giá cuối kỳ

• Thi học kỳ

Trang 5

Đánh giá giữa kỳ

• Thực hiện theo nhóm Mỗi nhóm (3 sinh

viên theo danh sách) làm 1 bài tập

• Cần:

– Hoàn thành bài tập được giao trong thời gian 1 tuần (nhận thứ năm hàng tuần và trình bày vào thứ năm tuần tiếp theo)

– Phân chia công việc rõ ràng

– Chuẩn bị slides và trình bày về bài tập cho các bạn trong lớp

– Đánh giá điểm cho các thành viên dựa vào công việc của từng thành viên

Trang 6

Tài liệu tham khảo

• Nguyễn Kim Anh, Nguyên lý của các hệ cơ

sở dữ liệu, NXB Đại học quốc gia Hà Nội

• SQL Unleashed, Second Edition

by Sakhr Youness Sams, Macmillan

Computer Publishing

• Database Management Systems, Second

Edition, Raghu Ramakrishnan and Johannes Gehrke

• Google…

Trang 7

CHƯƠNG 1

ĐẠI CƯƠNG VỀ HỆ

CƠ SỞ DỮ LIỆU

Trang 8

Giới thiệu

 Dư thừa, không nhất quán, dị thường trong truy nhập đồng thời, …

Trang 9

Giới thiệu (tiếp)

Trang 10

1 Khái niệm

Cơ sở dữ liệu (database)

« Là một bộ sưu tập các dữ liệu tác nghiệp được lưu trữ lại và được các hệ ứng dụng của một xí nghiệp cụ thể nào

đó sử dụng »

Ví dụ: cơ sở dữ liệu sách của thư viện Đại học Bách Khoa Hà Nội, cơ sở dữ liệu hàng hóa của siêu thị

Trang 11

1 Khái niệm

Hệ quản trị cơ sở dữ liệu (database management system)

"Là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với CSDL đó."

Ví dụ: M Access, SQL server

Trang 13

2 Hệ quản trị cơ sở dữ liệu

• Hệ quản trị cơ sở dữ liệu có khả năng:

– Khả năng quản lý dữ liệu tồn tại lâu dài

– Khả năng truy nhập các khối lượng dữ liệu lớn một cách hiệu quả

Trang 14

2 Hệ quản trị cơ sở dữ liệu

• Các đặc điểm của hệ quản trị cơ sở dữ liệu:

Trang 15

2 Hệ quản trị cơ sở dữ liệu

• Khái niệm:

– Sơ đồ cơ sở dữ liệu

– Thể hiện của sơ đồ cơ sở dữ liệu

Trang 16

2 Hệ quản trị cơ sở dữ liệu

Dữ liệu siêu dữ liệu

Bộ quản lý lưu trữ

Bộ xử lý câu

hỏi

Bộ quản lý giao dịch

Các thay đổi truy vấn

Các thay đổi

dữ liệu Các thay đổi

sơ đồ

Trang 17

2 Hệ quản trị cơ sở dữ liệu

Trang 18

Các mức trừu tượng

Trang 19

• Các ngôn ngữ cơ sở dữ liệu

– Ngôn ngữ định nghĩa dữ liệu (Data Definition Language-DDL)

– Ngôn ngữ thao tác dữ liệu (Data

Manipulation Language - DML)

»Tìm kiếm thông tin

»Thêm thông tin mới

»Xóa thông tin

»Thay đổi thông tin

2 Hệ quản trị cơ sở dữ liệu

Trang 20

• Người dùng

– Người quản trị cơ sở dữ liệu

» Định nghĩa sơ đồ, xác định cấu trúc lưu trữ, ủy quyền, xác định ràng buộc toàn vẹn

– Người sử dụng cơ sở dữ liệu

Trang 21

Ví dụ

Trang 22

3 Phân loại các hệ cơ sở dữ liệu

• Hệ cơ sở dữ liệu tập trung

– Hệ cơ sở dữ liệu cá nhân

– Hệ cơ sở dữ liệu trung tâm

– Hệ cơ sở dữ liệu khách chủ

• Hệ cơ sở dữ liệu phân tán

– Hệ cơ sở dữ liệu phân tán thuần nhất– Hệ cơ sở dữ liệu phân tán không thuần nhất

Trang 23

Cơ sở dữ liệu tập trung – Cơ sở dữ liệu trung tâm

Trang 24

Cơ sở dữ liệu phân tán

Trang 25

3 Hệ cơ sở dữ liệu phân tán

– Hệ cơ sở dữ liệu phân tán thuần nhất

»Hệ điều hành như nhau

»Mô hình dữ liệu như nhau

»Hệ quản trị cơ sở dữ liệu chung

»Dữ liệu được định nghĩa và có khuôn dạng chung

– Hệ cơ sở dữ liệu phân tán không thuần nhất

Trang 26

So sánh các hệ quản trị CSDL quan hệ

Microsoft SQL

PostgreSQL 1989 PostgreSQL Global

Development Group BSD

http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

Trang 27

So sánh các hệ quản trị CSDL quan hệ

Microsoft SQL Server 524,258 TB (32,767 files * 16

TB max file size)

Trang 28

CHƯƠNG 2

CÁC MÔ HÌNH DỮ

LIỆU

Trang 29

1 Tổng quan Quy trình phát triển ứng dụng CSDL

Source: Data Modeling Using Entity-Relationship Model, NGUYEN Kim Anh

Trang 30

Data modelling – Mô hình hóa dữ liệu

• Mục đích:

– Mô tả dữ liệu sẽ lưu trữ trong cơ sở dữ liệu (ví dụ các thực thể như sinh viên, bài học,…)

– Mô tả mối quan hệ giữa các dữ liệu

– Mô tả các ràng buộc đối với dữ liệu

Trang 31

• Mô hình dữ liệu là :

– Một sự hình thức hóa toán học với

một tập ký hiệu để mô tả dữ liệu

– Một tập các phép toán được sử dụng để thao tác các dữ liệu

Trang 32

2 Mô hình thực thể liên kết (Entity

Relationship Diagrams)

• Thực thể

• Thuộc tính

• Liên kết

Trang 33

Thực thể (Entity)

• “Là một đối tượng cụ thể hay trừu tượng

trong thế giới thực mà nó tồn tại và có thể phân biệt với các đối tượng khác”

Trang 34

Thuộc tính (Attribute)

• Thuộc tính là một thông tin về thực thể

• Một thuộc tính có một miền giá trị

• Thuộc tính (tập thuộc tính) khóa là thuộc tính (hay tập thuộc tính) mà giá trị của nó được xác định duy nhất cho mỗi thực thể

• Ví dụ:

– Số chứng minh thư nhân dân là thuộc tính

khóa cho nhân viên trong một xí nghiệp

– Username và password là tập thuộc tính khóa cho một tài khoản thư

Trang 35

Ví dụ

Nhân viên

Họ tên Mã số Giới tính

Ngày sinh Tuổi

Trang 36

Thực thể yếu (Weak entity)

-Là thực thể phụ thuộc vào thực thể khác-Liên kết định danh

+là liên kết giữa thực thể yếu và thực thể định danh nó

Trang 37

Thực thể yếu (Weak Entity)

VD:

-Thân nhân là thực thể yếu

-Nhân viên là thực thể định danh của thân nhân

-Phụ thuộc là liên kết định danh

Trang 39

Liên kết 1-1

female-customer

customer

male-current marriage

partial functions

A partial function from X to Y is a function ƒ:

X' → Y, where X' is a subset of X

Trang 40

Liên kết 0-N và 1-N

partial function

Trang 41

Liên kết bắt buộc 0-N và 1-N

total function

Trang 42

Liên hết N-M (nhiều-nhiều)

Trang 43

Cấu thủ Thi đấu cho Đội bóng

Sân nhà

Liên hết N-M (nhiều-nhiều)

Trang 44

Liên kết lặp

flt-schedule

connection

departure time arrivaltime

in out

flt#

Trang 45

Liên kết «is-a»

Nhân viên Cầu thủ

Trang 46

2 Mô hình quan hệ

• Tích đề các (Cartesian Product): Tích đề các

( × ) của n tập là tập tất cả các cách kết hợp của các thành phần trong n tập.

• Miền giá trị (Domain) của một thuộc tính là tập

tất cả các giá trị có thể của một thuộc tính Kí hiệu miền giá trị của thuộc tính A là dom(A)

Trang 47

• Sơ đồ quan hệ (Relation Schema) biểu diễn

R(A1, A2, …, An) là một quan hệ R và danh sách các thuộc tính A1, A2, …, An

• Quan hệ (Relation): là một tập con của tích

Đề các trong miền giá trị

Trang 48

• Bộ quan hệ ((N)-tuple): là một tập các cặp thuộc

tính-giá trị biểu diễn một thể hiện của quan hệ.

• Bậc quan hệ (Degree) : là số thuộc tính của quan

hệ.

• Lực lượng của quan hệ (Cardinality): là số bộ

của quan hệ.

3 Mô hình quan hệ (tt)

Trang 49

• Khóa (Key): là một tập thuộc tính mà các giá trị của nó xác định duy nhất một bộ trong quan hệ

– t1 và t2 là 2 bộ trong quan hệ r trên mô hình quan hệ R

Trang 50

Courseno Subject Lecturer Machine

CS250 Programming Lindsey Sun

Trang 51

CHƯƠNG 3 NGÔN NGỮ ĐỊNH NGHĨA

VÀ THAO TÁC DỮ LIỆU

Trang 52

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

 Cho phép định nghĩa:

 Sơ đồ đối với mỗi bảng

 Kiểu dữ liệu hay miền giá trị

 Các ràng buộc toàn vẹn

 Tập các chỉ dẫn

 Thông tin an toàn và ủy quyền đối với từng bảng

 Cấu trúc lưu trữ vật lý

Trang 53

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

Trang 54

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

 Tạo bảng trong CSDL:

CREATE TABLE <tên bảng> (<tên cột> <kiểu dữ liệu>

[NOT NULL], [CONSTRAINT <tên ràng buộc> <kiểu

ràng buộc> …])

Trang 55

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

 Tạo bảng – Xác định khóa chính

Trang 56

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

 Thêm - Xóa cột trong bảng

Trang 57

Thi-Lan Le, MICA HUST

1 Ngôn ngữ định nghĩa dữ liệu

Xóa bảng :

Trang 58

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

General Structure

SELECT, ALL / DISTINCT, *,

AS, FROM, WHERE

Comparison IN, BETWEEN, LIKE "% _"

Grouping GROUP BY, HAVING,

COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )

Display Order ORDER BY, ASC / DESC

Logical Operators

AND, OR, NOT

Output INTO TABLE / CURSOR

TO FILE [ADDITIVE], TO PRINTER, TO SCREEN

Trang 59

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

Thuộc tính

Thuộc tính Kiểu dữ liệu Độ rộng Giải thích

class character 2 Tên lớp

hcode character 1 Mã nhà (R, Y, B, G)

dcode character 3 Mã quận

remission logical 1 Quyền nhập học (T, F)

mtest numeric 2 Điểm thi toán

Trang 60

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

id name dob sex class mtest hcode dcode remission

Trang 61

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

VALUES (value 1, value 2, …, value n)

điểm của từng cách

Trang 62

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

và trả kết quả dưới dạng bảng

Biểu thức expr1, expr2 có thể :

• một cột hoặc

• một biểu thức gồm các hàm và các trường

 col1, col2 là tên các cột trong bảng kết quả

 DISTINCT: bỏ hết các bộ lặp trong kết quả trong khi từ khóa

ALL thì dữ lại toàn bộ các bộ lặp

condition có thể là :

• Toán tử so sánh >, <, = hoặc

• Toán tử so sánh xâu

• Toán từ logic AND, OR, NOT

SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;

FROM tablename WHERE condition

Trang 63

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Câu truy vấn:

SELECT * FROM student

id name dob sex class mtest hcode dcode remission

Trang 64

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 2: Liệt kê tên , mã nhà và lớp của sinh viên

Kết quả

Trang 65

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 3: Liệt kê mã quận của sinh viên có mã nhà

Kết quả

Trang 66

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Câu truy vấn:

SELECT name FROM student WHERE

class=‘1B’ AND sex=‘F’

Kết quả

Bài tập:

1) Liệt kê tên nữ sinh của lớp 1A và 1B 2) Liệt kê tên nữ sinh của lớp 1 A và nam sinh lớp 1 B

Trang 67

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 5: Liệt kê tên, id của sinh viên không được

miễn phí đăng ký của lớp 1A

 Câu truy vấn:

SELECT name, id, class FROM student WHERE

class=‘1A’ AND NOT remission

Trang 68

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

expr IN ( value1, value2, value3)

expr BETWEEN value1 AND value2

expr LIKE "%_"

Trang 69

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 6: Liệt kê các sinh viên sinh vào thứ tư hoặc

thứ bảy

 Câu truy vấn:

SELECT name, class, CDOW(dob) AS bdate

FROM student WHERE DOW(dob) IN (4,7)

 CDOW (): trả về tên ngày trong tuần của 1 ngày

 DOW (): trả về thứ của 1 ngày trong tuần dưới dạng số (Day of

Week)

name class bdate

Peter 1A Wednesday Wendy 1B Wednesday Kevin 1C Saturday Luke 1A Wednesday Aaron 1A Saturday

Kết quả

Trang 70

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 7: Liệt kê các sinh viên không sinh vào

Kết quả

Trang 71

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 8: Liệt kê sinh viên lớp 1A có điểm kiểm tra

toán từ 80 đến 90

 Câu truy vấn:

SELECT name, mtest FROM student WHERE

class=‘1A’ AND mtest BETWEEN 80 AND 90

Trang 72

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

groupexpr xác định các dòng liên quan sẽ được nhóm lại

WHERE condition xác định điều kiện cho từng dòng trước khi nhóm

HAVING requirement xác định điều kiện tương đương đến toàn bộ nhóm

SELECT FROM WHERE condition ;

GROUP BY groupexpr [HAVING requirement]

Các hàm của nhóm:

COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )

Trang 73

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 9: Xác định tổng số sinh viên của mỗi lớp

 Câu truy vấn:

SELECT class, COUNT(*) as NumberofStudent

FROM student GROUP BY class

Kết quả

Trang 74

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 10: Liệt kê điểm toán trung bình của từng

Trang 75

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Tính điểm trung bình của nữ sinh của tất cả các lớp

 Tính điểm trung bình của nữ sinh của từng lớp

Trang 76

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 11: Xác định số sinh viên nữ của từng quận

 Câu truy vấn:

SELECT dcode, COUNT(*) FROM student

WHERE sex=‘F’ GROUP BY dcode

Trang 77

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 12: Xác định điểm kiểm tra cao nhất và thấp

nhất của sinh viên ở từng quận

 Câu truy vấn:

SELECT MAX(mtest), MIN(mtest), dcode FROM

student GROUP BY dcode

max_mtest min_mtest dcode

Trang 78

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 13: Xác định điểm toán trung bình của nam

sinh viên trong mỗi lớp với điều kiện lớp đó có ít nhất

3 nam sinh viên

 Câu truy vấn:

SELECT AVG(mtest), class FROM student

WHERE sex=‘M’ GROUP BY class HAVING

Trang 79

Thi-Lan Le, MICA HUST

 Đưa ra tên lớp, điểm toán trung bình của nam sinh

viên trong mỗi lớp, số sinh viên nam của lớp với điều kiện lớp đó có ít nhất 3 nam sinh viên

Trang 80

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 ASC: chiều tăng dần

 DESC: chiều giảm dần

 Mặc định: là ASC

SELECT FROM WHERE

Trang 81

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 14: Liệt kê nam sinh viên của lớp 1 A theo

tên

 Câu truy vấn:

SELECT name, id FROM student

WHERE sex=‘M’ AND class=‘1A’ ORDER BY name

Trang 82

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 15: Liệt kê sinh viên lớp 2A theo mã quận

 Câu truy vấn:

SELECT name, id, class, dcode FROM student

WHERE class=‘2A’ ORDER BY dcode

name id class dcode

Trang 83

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 16: Liệt kê số lượng sinh viên của mỗi quận

theo chiều giảm dần

 Câu truy vấn:

SELECT COUNT(*) AS cnt, dcode FROM student

GROUP BY dcode ORDER BY cnt DESC

Trang 84

Thi-Lan Le, MICA HUST

sinh viên nữ có điểm thi lớn hơn điểm trung bình của

các sinh viên nữ

Trang 85

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 17: Liệt kê nam sinh viên trong một nhà theo

trật tự mã quận và tên lớp

 Câu truy vấn:

SELECT name, class, hcode FROM student

WHERE sex=‘M’ ORDER BY hcode, class

Trang 86

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

class

Blue House

Green House

Trậ tự

theo

hcode

Trang 87

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Hợp, giao và hiệu của các bảng

Hợp của A và B (A ∪ B)

Một bảng bao gồm tất cả các dòng của A và B.

Trang 88

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Hợp, giao và hiệu của các bảng

Giao của A và B (A ∩ B)

Một bảng bao gồm các dòng vừa tồn tại trong A vừa tồn tại trong B

Trang 89

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Hợp, giao và hiệu của các bảng

Hiệu của A và B

Bảng bao gồm các dòng ở trong A nhưng không ở trong B

Trang 90

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

cùng cấu trúc như sau:

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

id numeric 4 Mã hiệu sv

sex character 1 Giới tính (M / F)

class character 2 Lớp

id name sex class id name sex class

Trang 91

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 17: Xác định hợp của 2 câu lạc bộ

Trang 92

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 18: In danh sách các sinh viên tham gia cả 2

Trang 93

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Yêu cầu 19: Xác định danh sách các sinh viện tham

gia câu lạc bộ Bridge nhưng không tham gia câu lạc

bộ Chess

 Câu truy vấn:

SELECT * FROM bridge WHERE id NOT IN

(SELECT id FROM chess )

SELECT FROM table1 ;

WHERE col NOT IN ( SELECT col FROM table2 )

Trang 94

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Bảng Music lưu trữ thông tin về nhạc cụ của sinh

viên

Thuộc tính Kiểu dữ liệu Độ rộng Ý nghĩa

id numeric 4 mã hiệu sinh viên

type character 10 kiểu nhạc cụ

Trang 95

Thi-Lan Le, MICA HUST

2 Ngôn ngữ thao tác dữ liệu

 Kết nối tự nhiên (Natural Join) hay (Inner joint): là một thao

tác kết nối 2 bảng bằng các cột chung

 Kết nối ngoài (outer join):

 LEFT OUTER JOIN (thường viết LEFT JOIN) lựa chọn tất cả các dòng ở trong bảng đầu tiên sau FROM ngay

cả khi nó không có trong bảng thứ hai

 RIGHT OUTER JOIN

Ngày đăng: 30/05/2016, 09:30

HÌNH ẢNH LIÊN QUAN

Bảng bao gồm các dòng ở trong A nhưng không ở trong B - slide co so du lieu database
Bảng bao gồm các dòng ở trong A nhưng không ở trong B (Trang 89)

TỪ KHÓA LIÊN QUAN

w