پروژه پایگاه داده ها – نمودار ER ، طراحی و پیاده سازی برگزاری مسابقات فوتبال - وب سایت رضا احمدی

پروژه پایگاه داده ها – نمودار ER ، طراحی و پیاده سازی برگزاری مسابقات فوتبال

پروژه پایگاه داده ها – نمودار ER ، طراحی و پیاده سازی برگزاری مسابقات فوتبال

در این پروژه پایگاه داده به تعریف و طراحی نمودار ER فوتبال برای مسابقات لیگ و پیاده سازی آن در MariaDB و لینوکس فدورا می پردازیم.

نمودار ER چیست و چه کاربردی دارد؟

نمودار ER یا ERD مخفف عبارت Entity-Relationship Diagram به معنای نمودار رابطه-موجودیت است. این نمودار یک نمایش تصویری از طبقه‌بندی گروه‌ها با ویژگی‌های مشترک و تعریف رابطه بین این گروه‌ها است.

نمودار ER در درجه اول در زمینه‌های زیر استفاده می‌شود:

طراحی پایگاه داده: برای تصویرسازی جداول پایگاه داده و روابط بین آن‌ها استفاده می‌شود. همچنین در عیب‌یابی پایگاه داده نیز کاربرد دارد.
مهندسی نرم‌افزار: به طور معمول در مراحل برنامه‌ریزی یک پروژه نرم‌افزاری استفاده می‌شود. برای شناسایی عناصر مختلف سیستم و نحوه تعامل آن‌ها با یکدیگر به کار می‌رود. علاوه بر این به عنوان نمودار جریان داده (DFD) نیز شناخته می‌شود.

نمودار ER توسط برخی از نمادها و شکل‌ها مانند بیضی، لوزی، مستطیل و خطوط اتصال تعریف می‌شود. این نمودارها همراه با نمودارهای جریان داده (DFD) برای نشان دادن جریان اطلاعات در درون فرآیندها یا سیستم‌ها نیز کاربرد دارند.

مدل ER یک مدل داده‌ای سطح بالا و یک رویکرد گرافیکی برای طراحی پایگاه داده است که عناصر داده و رابطه بین آن‌ها در یک سیستم یا نرم‌افزار مشخص را تعریف می‌کند. این نمودارها به ما کمک می‌کنند تا ارتباط بین موجودیت‌ها، اشیا یا مفاهیم مختلف در یک سیستم را بهتر درک کنیم.

نمودار ER به عنوان یک راه حل برای مشکل عدم وجود یک روش استاندارد برای مدل‌سازی پایگاه داده یا فرآیندهای تجاری به وجود آمد. در واقع نوعی نمودار فلوچارت است که به درک ارتباط بین موجودیت‌ها، اشیا یا مفاهیم مختلف در یک سیستم کمک می‌کن.

بخش اول پروژه، نمودار ER  :

نمودار ER ، طراحی و پیاده سازی برگزاری مسابقات فوتبال

برخی از فرضیات در نظر گرفته شده :

  1. هر تیم فوتبال تعدادی بازیکن (player ) دارد
  2. هر تیم فوتبال تعداد عضو فنی و خدماتی دارد مثل مربی، سرپرست ، تدارکات
  3. هر عضو فنی میتواند تنها عضو یک تیم در تاریخ مشخص باشد.
  4. هر بازیکن تنها در یک تیم عضو هست البته در یک بازه تاریخی مشخص.
  5. دوار میتواند 4 جایگاه (position)در بازی داشته باشد:به عنوان داور اول،داور دوم و…

بخش دوم طراحی :

بخش دوم طراحی

بخش سوم پروژه ، پیاده سازی :

پیاده سازی در لینوکس Fedora نسخه 36 با mariadb 10.5   انجام شده است.

1 – نصب mariadb  در fedora  :

$ sudo dnf install mariadb
$ sudo dnf install mariadb-server

2 – اجرای فایل ( دستورات ) sql  که پیوست شده است:

1- تغییر دایرکتوری موجود به پوشه فایل های نوشته شده :

mariadb sql fedora fig1

2- ورود به محیط mariadb  با یوزر root

mariadb sql fedora fig 2

3- اجرای فایل football_installation.sql  : این فایل دیتا بیس و جدول های مورد نیاز را می سازد.

mariadb sql fedora fig 3

4اجرای فایل football_simpledata.sql  : در این فایل جدول ها با دیتا های نمونه پر شده اند.( دستورات insert )

mariadb sql fedora fig 4

5- اجرای چند کوئری نمونه و کاربردی که در فایل football_simplequery.sql  نوشته شده اند :

لیست کل تیم ها :

select * from TEAM ;

mariadb sql fedora fig 5

لیست بازیکنان تیم استقلال:

select * from PLAYER where t_name="Esteghlal";

mariadb sql fedora fig 7

لیست بازی های تیم پرسپولیس:

select * from GAME where t1_name='Perspolis' or t2_name='Perspolis';

mariadb sql fedora fig 8

بازی تیم پرسپولیس و تراکتور :

select * from GAME where (t1_name='Perspolis' or t2_name='Perspolis') and (t1_name='Teraktor' or t2_name='Teraktor');

mariadb sql fedora fig 9

لیست بازیکنان استقلالی که در بازی با فولاد بازی کرده اند :

select p.first_name,p.last_name,p.p_num,pl.*  from PLAYER as p join Play as pl join GAME as g where pl.game_id=g.game_id AND g.t1_name='Esteghlal' AND g.t2_name='Foolad' and pl.p_id_card=p.id_card and p.t_name='Esteghlal';

mariadb sql fedora fig 10

لیست و تعداد کارت زرد هایی که بازیکنان در این مسابقات گرفته اند:

select p.id_card,p.first_name,p.last_name,SUM(pl.yellow_card) as ' Number of yellow cards' from PLAYER as p join Play as pl where pl.p_id_card=p.id_card AND pl.yellow_card > 0 group by p.id_card;

mariadb sql fedora fig 12

لیست داوران بازی استقلال و پرسپولیس :

select r.*,j.position from REFEREE as r join Judges as j join GAME as g where g.t1_name='Esteghlal' and t2_name='Perspolis' and j.game_id=g.game_id and r.ref_id=j.ref_id;

mariadb sql fedora fig 13

جدول مسابقات و امتیاز هر تیم :

  1. WITH RESULT AS (
  2. SELECT *,
  3.     CASE WHEN t1_goals > t2_goals THEN 3 
  4.         WHEN t1_goals = t2_goals THEN 1
  5.         WHEN t1_goals < t2_goals THEN 0
  6.     END AS t1_points,
  7.     CASE WHEN t2_goals > t1_goals THEN 3
  8.         WHEN t2_goals = t1_goals THEN 1
  9.         WHEN t2_goals < t1_goals THEN 0 
  10.     END AS t2_points 
  11. FROM GAME
  12. )
  13. SELECT
  14.         t_name,
  15.         SUM(num_points) AS num_points
  16.     FROM (
  17.         SELECT
  18.             t1_name AS t_name,
  19.             SUM(t1_points) AS num_points
  20.         FROM RESULT 
  21.         GROUP BY 1
  22.         UNION ALL
  23.         SELECT
  24.             t2_name AS t_name,
  25.             SUM(t2_points) AS num_points
  26.         FROM RESULT
  27.         GROUP BY 1
  28.         ) x
  29.     GROUP BY 1
  30.     ORDER BY num_points DESC;
mariadb sql fedora fig 14

        دانلود فایل ها:

در فایل زیپ زیر فایل های sql که در بالا از آن یاد شد قرار دارد.

database_mrzx_ir.zip

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیدگاه های ثبت شده

تا کنون دیدگاهی ثبت نشده است.