Database 4031
31 subscribers
3 photos
6 videos
53 files
39 links
Course: Database 4031

Sundays & Tuesdays: 13:30 to 15:30

Class 109

Instructor:
Dr. Mehdi Emadi
m.emadi@nit.ac.ir

TAs:
@amirrhoseinnj
@Zahrarezaeii7
@kaadela
Download Telegram
تمرین سری ۸ برای اخرین بار تا شب تمدید شد.
5🙏1
Redis.pdf
82.4 KB
تمرین سری 9 در کوئرا آپلود شد.
مهلت تمرین:1403/10/6
درصورت هرگونه ابهام به من پیام دهید.
redis.txt
1.1 KB
فایل داده مربوط به تمرین
Media is too big
VIEW IN TELEGRAM
📌 راه اندازی سرور دیتابیس Redis با استفاده از Docker



🧑‍💻 دستورات مورد نیاز

راه اندازی کانتینر Redis:
docker run -d --name my-redis-stack -p 6379:6379  redis/redis-stack-server:latest


چک کردن کانتینر redis/redis-stack-server:
docker ps


وارد شدن به کانتینر redis/redis-stack-server با ۳ کاراکتر اول container_id:
docker exec -it 3e2 sh


وارد شدن به redis_cli:
redis-cli

تست کردن اتصال درست:
127.0.0.1:6379>ping
PONG
ProjectPhase5-API.pdf
283.8 KB
فاز 5 پروژه در کوئرا آپلود شد.
مهلت ارسال:1403/10/06
درصورت هرگونه مشکل به حل تمرین مربوطه پیام دهید.
پایانترم از فصل های 3 ,4 ,7 ,8 ,10 ,11, 17 می باشد.
نمرات تمرین سری 1 در گوگل درایو قرار گرفت.درصورت هرگونه اعتراض به من پیام دهید.
تمرین سری 9 تا فرداشب تمدید شد.
9👍1
دقت کنید تمرین سری ۹ و فاز ۵ پروژه جزو نمره اضافی شما هست.
3
فاز ۵ پروژه و تمرین سری ۹ رو تا امشب میتونید اپلود کنید.
2
فردا و پسفردا ارائه نهایی برای پروژه ازتون گرفته میشه .
تایم ها بزودی قراره داده میشه.
😢4
برای ارائه نهایی پروژه های google flight و digikala از لینک های زیر تایم بگیرید.

Digikala:(فقط امروز)
https://calendly.com/njamir16/final_presentation

Google flight:(امروز و فردا)
https://calendly.com/zahrarezaie7674/database_project
برای ارائه نهایی پروژه ایران کنسرت از لینک زیر تایم بگیرید. (امروز و فردا)
https://calendly.com/elafathollahi/project-4
❗️ ارائه پروژه google flight از ساعت 19:00 تا 21:00 امشب کنسل شد.
کسایی که این تایم ارائه داشتن فرداشب از ساعت 20:00 تا 22:00 به همون ترتیب ارائه میدن.
لینک گوگل میت فرداشب تو چنل گذاشته میشه.
لطفا کسایی که با من ارائه دارن سر تایم جوین بشن
11_fa-ch17-Transaction.pdf
762.3 KB
اسلاید فصل 17
view:
1:
CREATE VIEW FilmPopularitySummary AS
SELECT
f.film_id,
f.title,
f.rating,
COUNT(r.rental_id) AS total_rentals
FROM
film AS f
LEFT JOIN inventory AS i ON f.film_id = i.film_id
LEFT JOIN rental AS r ON i.inventory_id = r.inventory_id
GROUP BY
f.film_id, f.title, f.rating;

select * from FilmPopularitySummary order by total_rentals desc limit 20

2:
CREATE VIEW CustomerRentalSummary AS
SELECT
c.customer_id,
c.first_name || ' ' || c.last_name AS customer_name,
COUNT(distinct r.rental_id) AS total_rentals,
COALESCE(SUM(p.amount), 0) AS total_payments
FROM
customer AS c
LEFT JOIN rental AS r ON c.customer_id = r.customer_id
LEFT JOIN payment AS p ON p.customer_id = c.customer_id
GROUP BY
c.customer_id, c.first_name, c.last_name;

select * from CustomerRentalSummary order by total_payments desc limit 20

extra:
CREATE VIEW FilmAvailabilityPopularity AS
SELECT
f.film_id,
f.title,
f.rating,
COUNT(DISTINCT i.inventory_id) AS total_copies,
COUNT(DISTINCT r.rental_id) AS total_rentals,
COUNT(DISTINCT CASE WHEN r.return_date IS NULL THEN i.inventory_id END) AS copies_rented_out,
COUNT(DISTINCT CASE WHEN r.return_date IS NOT NULL THEN i.inventory_id END) AS copies_available
FROM
film AS f
JOIN inventory AS i ON f.film_id = i.film_id
LEFT JOIN rental AS r ON i.inventory_id = r.inventory_id
GROUP BY
f.film_id, f.title, f.rating;

select * from FilmAvailabilityPopularity
materialized
1:
CREATE MATERIALIZED VIEW StoreInventorySummary AS
SELECT
s.store_id,

COUNT(i.inventory_id) AS total_inventory,
COUNT(r.rental_id) AS total_rented
FROM
store AS s
LEFT JOIN inventory AS i ON s.store_id = i.store_id
LEFT JOIN rental AS r ON i.inventory_id = r.inventory_id
GROUP BY
s.store_id;

select * from StoreInventorySummary

2:
CREATE MATERIALIZED VIEW MostExpensiveMoviePerCustomer AS
SELECT
c.customer_id,
c.first_name || ' ' || c.last_name AS customer_name,
f.title AS most_expensive_movie,
f.rental_rate AS movie_price
FROM
customer AS c
JOIN rental AS r ON c.customer_id = r.customer_id
JOIN inventory AS i ON r.inventory_id = i.inventory_id
JOIN film AS f ON i.film_id = f.film_id
WHERE f.rental_rate = (
SELECT MAX(f2.rental_rate)
FROM rental AS r2
JOIN inventory AS i2 ON r2.inventory_id = i2.inventory_id
JOIN film AS f2 ON i2.film_id = f2.film_id
WHERE r2.customer_id = c.customer_id
);

select * from MostExpensiveMoviePerCustomer