DB Logo

Database Design

by Rikky

Блогымыздың барлық категориялары:

Дерекқордың мысалдары (мақала суреті)

Дерекқордың мысалдары

Танымал мысалдар негізінде дерекқор архитектурасын талдаймыз

Дерекқорды қалпына келтіру (мақала суреті)

Дерекқорды қалпына келтіру

Деректердің жоғалтуынсыз жиі кездесетін қателіктерді түзету

Дерекқордың негіздері (мақала суреті)

Дерекқордың негіздері

Дерекқорды қарапайым тілмен жобалау

Жоба жаңалықтары (мақала суреті)

Жоба жаңалықтары

Жаңартулар, жаңа функциялар және басқа оқиғалар

SQL сұрауларының мысалдары (мақала суреті)

SQL сұрауларының мысалдары

SQL негіздері қарапайым тілмен, SQL операторлары

Мәліметтер базасын жобалаудың негіздері: деректерді нормализациялау қарапайым тілмен, реляциялық мәліметтер базасындағы байланыстардың мақсаты, бір-ко-мекеме байланысы

Деректерді нормализациялау қарапайым тілмен

Деректер базасының құрылымы деректердің қайталанбауымен жасалуы керек. Мұны DBMS-те емес, барлық деректер базасының схемасын бір қарағанда көруге болатын визуалды деректер базасын жобалаушыда, мысалы, Database Design-де жасау ыңғайлы.

Біз онлайн дүкеннің деректер базасының құрылымын жобалап жатқанымызды елестетейік. Біз онда сатылатын өнімдер туралы ақпаратты сақтауға тиістіміз. Сонымен қатар, әр өнім өнім категорияларының біріне жатады. Біз бұл ақпаратты қалай сақтауымыз керек?

Алдымен, өнімдер үшін кесте жасау, әр өнім жазбасында оның атауы, сипаттамасы, бағасы және категория атауын сақтау туралы ойымызда болуы мүмкін: 2023-11-21_17-59-54.png Неге мұны жасамау жақсы? Онлайн дүкеннің көптеген категориялары мен көптеген өнімдері бар жағдайды елестетіңіз. Категориялардың атауын өзгерту қажет болды. Мұндай іске асыру кезінде сіз өнімдер кестесіндегі әр жазбаға өзгерістер енгізуіңіз керек, категория атын жаңасымен ауыстыруыңыз керек.

Біз бірдей деректердің көптігін сақтаймыз, және оларды өзгерту қиын. Бұдан басқа, категория атын көптеген жазбаларда өзгерту процесінде деректер базасы істен шығып, кейбір аттар өзгеріссіз қалуы мүмкін. Бұл едәуір деректік сәйкессіздікке әкеледі, бұл маңыздлы қателіктерге апаруы мүмкін.

Енді не істейміз? Реляциялық деректер базасының негізгі артықшылығына жүгінейік: кестелер арасында байланыс жасау мүмкіндігі. Біз категория деректерін сақтау үшін бөлек кесте жасауымыз керек. Солайша, категория атауын өзгерту қажет болған кезде, өзгеріс тек бір жазбаға әсер етеді: 2023-11-21_18-14-49.png

Нормалдастырылған деректер құрылымы – бұл мүлдем бірдей деректердің әртүрлі жазбаларда қайталануы мүмкін емес ұғым. Яғни, өнім категориялары туралы ақпаратты сақтауымыз қажет болғанда, өнімдер туралы ақпаратты категориялар туралы ақпараттан бөлек сақтаймыз.

Енді өнімнің қандай категорияға жататындығын қалай түсінеміз? Біз өнімдер мен категориялар арасында байланыс орнатуымыз керек. Ол үшін өнімдер кестесіне category_id өрісін қосамыз және әр өнім жазбасында категория жазбасының id-сін сақтаймыз.

id – бұл кез келген кестеде (көп-көп байланыс кестелерінен басқа, бірақ соған қатысты кейінірек айтамыз) әр жазбада бар ерекше (қайталанбайтын) сан. Бір кестеде екі бірдей id бола алмайды, бұл бізге қажетті жазбаны 100% дәлдікпен алуымызға мүмкіндік береді.

Мұның қалай көрінетінін қараңыз: 2023-11-21_18-37-28.png Өнімдерге жататын категориялардың уникалды нөмірлерін өнім жазбаларында сақтай отырып, біз әр өнімді категорияға байланысты барлық дерек-мазмұнымен ала аламыз:

SELECT
       p.id, p.name, p.description, p.price, 
       c.id as 'category_id', c.name as 'category_name', c.image as 'category_image'
 FROM
       product p, category c
 WHERE
       p.category_id = c.id;

Бір-ко-көп байланыс

Жоғарыдағы скриншотта біз "бір-ко-көп" байланысты жасадық, сондай-ақ "бір-ко-көп" немесе 1:M деп те аталады. Тағы да, бұл мысалмен түсіндіру оңай: біздің байланыстың "бірі" – категория, ал "көп" – өнімдер.

Бұл бір өнім тек бір категорияға ғана жататынын білдіреді (adidas кроссовкалары тек "аяқ киім" категориясына жатады, "қолғақ" немесе "бас киім" емес). Бір категорияда бірнеше өнім болуы мүмкін (мысалы, "аяқ киім" бөлімінде "adidas кроссовкалары", "тері етіктер", "nike кроссовкалары" және т.б. табылады).

Осы байланыстың арқасында біз қажетті логиканы қамтамасыз етеміз, оның мысалыны мен жоғарыда келтірдім. Сондай-ақ, өнім ақпаратын алу кезінде тек категория туралы ақпаратты ғана алмай, белгілі бір категорияға жататын өнімдер тізімін де алуға болады. SQL сұрауымызды кеңейтейік:

SELECT
       p.id, p.name, p.description, p.price, 
       c.id as 'category_id', c.name as 'category_name', c.image as 'category_image'
 FROM
       product p, category c
 WHERE
       p.category_id = c.id
       AND
       c.id = N;

Мұнда N орнына біз уникалды категория нөмірін ауыстыруымыз керек.

Келесі мақалаларда реляциялық деректерді байланыстырудың басқа түрлері туралы ақпарат таба аласыз: көп-көп және бір-бір. Егер бұл сізге пайдалы болып көрінсе, менің білім беру YouTube каналыма жазылып, лайк/пікір қалдырудан тартынбаңыз.

Деректер базасын қайда жобалауға болады?

Database Design атты жаңа визуалды конструктормен танысуды ұсынамыз.

Қарапайым әрі ыңғайлы интерфейс реляциялық деректер базасын графикалық модельдің көрнекі түрде ұсынылуы түрінде жобалауға мүмкіндік береді, мұнда әртүрлі кестелердің өрістерін байланыстыра аласыз, олар бір-біріне қалай қатысты екенін көрсетіп.

Оның қалай көрінетінін қарастырайық:

Бейнежазбаны көру
Где можно спроектировать базу данных? В Database Design!

Database Design қосымшасындағы схеманы кейін SQL-дампасы ретінде жүктеуге болады, сілтемеден жүктеп алып.

Дамп файлы реляциялық деректер базасының дәл құрылымын кез келген SQL-сұраныс түріндегі деректер базасын басқару жүйесінде қайта құру үшін пайдаланылуы мүмкін, мысалы, MySQL.

Тіпті SQL-сұраныстарының кодын жазудың қажеті болмайды!

Database Design-де жұмыс істеу —
бір қуаныш!

Бұл кәсіпқойлар
және студенттер үшін деректерді сақтау мен талдау, сондай-ақ өз жобаларының деректер базасы модельдерін көрнекі түрде ұсыну үшін тамаша.

Database Design-де браузер арқылы кез келген құрылғыдан, тіпті смартфоннан жұмыс істеуге болады, жүктеп алып, ештеңе орнатудың қажеті жоқ!

Конструкторға өту
Database Design

Басқа мақалалар
және жобаның жаңалықтары:

SQL-де кестеден деректерді қалай алуға болады: SQL сұранысы SELECT FROM WHERE

SQL-де кестеден деректерді қалай алуға болады: SQL сұранысы SELECT FROM WHERE

SQL сұрауларының мысалдары

Мысалдармен SQL үйрену: дерекқордан деректерді алу үшін SQL командаларын қалай жазуға болады? Мен деректер базасынан ақпаратты қарапайым сөздермен, артық мәліметтерсіз түсіндіремін. SELECT FROM WHERE командасы оңай! Бұл MySQL, PostgreSQL, MS SQL, SQLite, Oracle, MariaDB және басқа SQL DBMS-те жұмыс істейді. Мақаланы оқу

SQL-де кестеге жолды қалай қосуға болады: SQL INSERT INTO операторы

SQL-де кестеге жолды қалай қосуға болады: SQL INSERT INTO операторы

SQL сұрауларының мысалдары

Мысалдармен SQL үйрену: кестеге деректер қосу үшін SQL командаларын қалай жазуға болады? Мен деректерді деректер базасындағы кестеге қалай енгізуге болатынын қарапайым сөздермен, артық мәліметтерсіз түсіндіремін. INSERT INTO командасы оңай! Бұл MySQL, PostgreSQL, MS SQL, SQLite, Oracle, MariaDB және басқа SQL дерекқорларында жұмыс істейді. Мақаланы оқу

SQL-де кестедегі жазбадағы деректерді қалай өзгертуге болады: SQL UPDATE сұранысы

SQL-де кестедегі жазбадағы деректерді қалай өзгертуге болады: SQL UPDATE сұранысы

SQL сұрауларының мысалдары

SQL жазбаларын жаңарту, кестедегі жолды өзгерту үшін SQL командаларын қалай жазуға болады? Мен SQL деректер базасының кортежіндегі деректерді қарапайым сөздермен, қажетсіз бөлшектерсіз түсіндіремін. UPDATE SET бұйрығы оңай! Бұл MySQL, PostgreSQL, MS SQL, SQLite, Oracle, MariaDB және басқа SQL DBMS-те жұмыс істейді. Мақаланы оқу

SQL кестесінен деректерді қалай жоюға болады: SQL сұранысы DELETE FROM WHERE

SQL кестесінен деректерді қалай жоюға болады: SQL сұранысы DELETE FROM WHERE

SQL сұрауларының мысалдары

SQL-ді мысалдармен үйрену: мәліметтер базасынан жолды жою үшін SQL командаларын қалай жазуға болады? Мен SQL-де жолды жоюды түсіндіремін, SQL жазбасын қалай жою керектігін қарапайым сөздермен, артық ақпаратсыз. DELETE FROM WHERE сұранысы оңай! Бұл MySQL, PostgreSQL, MS SQL, SQLite, Oracle, MariaDB және басқа SQL DBMS үшін жұмыс істейді. Мақаланы оқу

Реляциялық деректер базалары - бұл іс жүзінде кез келген IT жобасының құрамдас бөліктерінің бірі. Деректер базасының мәні неде? Олар нені қажет етеді?

Реляциялық деректер базалары - бұл іс жүзінде кез келген IT жобасының құрамдас бөліктерінің бірі. Деректер базасының мәні неде? Олар нені қажет етеді?

Дерекқордың негіздері

Деректер базасы не үшін қажет? Бағдарламалау тұрғысынан деректер базасы дегеніміз не? Деректер базасындағы деректер құрылымы, "реляциялық" дегеніміз не және, ақырында, деректер базасының келдіру сатысына өте жауапты түрде жақындаудың маңыздылығы неде? Мақаланы оқу

Деректер базасын жобалаудың негіздері: "бір-біріне" (1:1) қатынасты қалай жасауға болады және бұл қатынас түрі қашан қажет екенін қарапайым тілмен, мысалмен түсіндіру

Деректер базасын жобалаудың негіздері: "бір-біріне" (1:1) қатынасты қалай жасауға болады және бұл қатынас түрі қашан қажет екенін қарапайым тілмен, мысалмен түсіндіру

Дерекқордың негіздері

Реляциялық деректер базалары бойынша сабақтар, онлайн деректер базасын оқу. "Бір-біріне" (1:1) қатынасты қалай жасауға болады және бұл қатынас түрі қашан қажет. Реляциялық деректер базаларының құрылымын SQL сұранымдарының мысалдарымен үйрену. Мақаланы оқу

Мәліметтер базасын жобалау негіздері: көп-көп (К:К) қатынасты қалай құруға болады және бұл қатынас түрі қашан қажет, қарапайым мысалмен түсіндірілген

Мәліметтер базасын жобалау негіздері: көп-көп (К:К) қатынасты қалай құруға болады және бұл қатынас түрі қашан қажет, қарапайым мысалмен түсіндірілген

Дерекқордың негіздері

Реляциялық базалар бойынша сабақтар, онлайн мәліметтер базасын үйрену. Көп-көп (К:К) қатынасты қалай құруға болады және бұл қатынас түрі қашан қажетті. Реляциялық базалардың құрылымын SQL сұрауларының мысалдарымен зерттеу. Мақаланы оқу

Мәліметтер базасын жобалаудың негіздері: деректерді нормализациялау қарапайым тілмен, реляциялық мәліметтер базасындағы байланыстардың мақсаты, бір-ко-мекеме байланысы

Мәліметтер базасын жобалаудың негіздері: деректерді нормализациялау қарапайым тілмен, реляциялық мәліметтер базасындағы байланыстардың мақсаты, бір-ко-мекеме байланысы

Дерекқордың негіздері

Реляциялық мәліметтер базасы бойынша сабақтар, онлайн мәліметтер базасы бойынша оқыту. Бірге-көп (1:M) байланысы, мысалдармен және қарапайым тілмен түсіндірілген. Мақаланы оқу

MySQL басталмайды: MySQL "Кенеттен тоқтату" қатесін қалай жөндеуге болады

MySQL басталмайды: MySQL "Кенеттен тоқтату" қатесін қалай жөндеуге болады

Дерекқорды қалпына келтіру

Барлығын керемет жұмыс істеп тұрғандай, кенеттен MySQL қате жіберіп құларады ма? Мәселені деректерді жоғалтпай қалай түзетуге болатынын түсіндірейін. Мақаланы оқу