inflearn logo
inflearn logo

Why? How? DB Design and Data Handling

We will look at the data processing and processing methods for "study cafes, web novel databases, and national parking lot information standard data" using MariaDB and MySQL.

(5.0) 2 reviews

79 learners

Level Basic

Course period Unlimited

SQL
SQL
MariaDB
MariaDB
mysql-workbench
mysql-workbench
MySQL
MySQL
SQL
SQL
MariaDB
MariaDB
mysql-workbench
mysql-workbench
MySQL
MySQL
날개 달린 동전

Recommend Course to grow and earn commission!

날개 달린 동전

Marketing Partners

Recommend Course to grow and earn commission!

What you will gain after the course

  • ERD design using MySQL workbench

  • Creating basic data using SQL

  • Simple statistical queries to create

📢 Please make sure to check!

  • All videos for this course are available for free on YouTube ("SQL Bank"). (Lesson materials provided, but no copying of content is supported.)

  • If you watch on Inflearn, you'll receive an ad-free environment and access to resource-available lesson files . Be sure to keep this in mind when purchasing a course.

Why on earth? How on earth! DB design and data handling

When learning SQL or databases, you sometimes have questions.

  • 'Why on earth am I learning this?'

  • 'I think arrays would be sufficient for data structures in other programming languages.'

However, the moment you join a team developing a project or service with a single goal, you quickly realize that SQL isn't just the domain of database developers. Leaders and team leaders often assume that most developers are proficient in SQL, and it's also common to find clients who are quite adept at it. This explains why so many people assume databases are easy.

From then on, program developers started to think of SQL as a burden.

  • Should I make this logic into a query or process it with a LOOP-IF statement?

  • I made it using SQL, but it's not my area of expertise and I can't ask anyone...

  • I don't know. I'll ask the team leader to make it for me.

If you happen to review a case study of a previous project, you will often find that the number of SQL queries is greater and more complex than the programming source code.

  • It's not like I'm bad at it, but why do I hate DB so much? I learned it, but it's obvious! The more I look at it, the more I wonder, "How on earth did they make all this?"

That's because, despite the basic knowledge and theory of SQL I painstakingly learned, I've never really applied it properly. It's difficult to gain diverse experience with SQL outside of real-world projects. They tell me development databases aren't good for this reason, operational databases aren't good for that reason, and they even tell me not to use personal PC databases...

Furthermore, unlike typical programming languages, SQL has a strong individualistic nature, with each user having a strong opinion on which is the correct answer. Furthermore , familiarity with data structures increases its usability, making it difficult to handle database development tasks with just SQL . In other words, the less practical experience you have with various systems and environments, the more likely you are to feel like you're heading into a new world.

As you follow the course, pause for a moment and think about it.

  • If I were you, how would you have created the data in this case?

  • If the more cases the test data provides, the better, then how many cases can I create myself?

That's right. There's a big difference between programming and data. If programming is logic, then data is experience . Because it's as plentiful as the events that occur in human life. That's why experience is so important, and it's not easy to adapt to SQL alone.

The course offers a limited number of projects, but they offer a " hands-on experience ." They all involve data processing and query processing. You'll need to be proficient in the editor, be able to create and delete tables, and consider a variety of edge cases. It's a distinctly different experience from programming. Even when you think you're done, you'll find yourself going back to the drawing board dozens or hundreds of times, and the programming work still remains.

However, the more ambitious you are in incorporating diverse scenarios into your test data, the easier subsequent programming becomes. This is because the programming logic has already been planned, anticipated, and coded in your head during the data creation process. Perhaps that's what senior executives often refer to as " experience ."

Gradually, you'll be able to approach the importance of " design " from a data perspective. You'll also face the dangers of believing that design flaws can be corrected with programming. Consequently, you might find yourself devoting more effort, effort, and attention to detail to the design phase. Isn't that starting to resemble someone you envy? The image of a senior professional.

I believe a good programmer is someone who has worked with a variety of data environments, rather than someone who has mastered numerous languages and technologies. While increasing your immediate value in the market and within your company is important, if you want to make a long-term career out of this, I believe the ultimate destination will be the data field.

I hope this course will help you discover your own practical data and SQL approach. There's no right answer, but there are certainly solutions that are uniquely yours.

Learn about these things

Section (0) Internal DB system required when registering a study cafe

  1. Find a study cafe

    • Introducing the Study Cafe service.

    • Take a look at the kiosk menu and pricing plans.

  2. I stood in front of the kiosk for a long time

    • When a customer registers, the DB structure required is drawn directly in ERD.

  3. A world beyond payment, imagined in my mind

    • Create a table based on the designed ERD

    • Generate and input virtual (test) data that is close to reality.

  4. Everything I do is data

    • Query virtual statistical data based on generated data.

    • At this point, let's create a simple statistical query.

Study Cafe Registration System ERD

Section (1) Tables and data structures that are key in web novels

  1. If one day the novel I wrote sells

    • Introduction to web novels and sales websites

    • Home screen > Detail screen > Episode search > Statistics screen

  2. A world called ERD, a character called Table

    • Drawing ERDs using MySQL Workbench

    • About the Master/Reference/Performance Table

  3. The starting point is period data, and the development is a reference table.

    • Genre/Complete/Serialization/Tag Information Table

    • About period data (English/Korean ID table) and related functions

  4. A collection of main characters and characters, a table of web novel information.

    • Web novel information: Step-by-step creation of virtual data for all column values

    • Data value encoding method using reference tables

  5. Dialogue, action, and episode information table

    • Step-by-step creation of virtual data for all column values in the turn information

    • Uploading a selected novel to the database and processing it into individual episodes

    • Register episodes by day of the week

  6. The story itself, the performance table

    • Create virtual data for serialized weekday information

    • Create virtual data based on episode view statistics

  7. A short novel epilogue, a statistical query

    • Cumulative total number of views by hour

    • SQL to divide and sum by N hours per day

    • Divide by N(1,2,3,4,6,12,24) time units and sum the number of views

    • How to group views by N days and sum them up

Web novel site home/detailed ERD

Section (2) National parking lot information, from RAW data to PK

  1. I need RAW data

    • Download the standard data file for national parking lot information provided by the Public Data Portal.

  2. Can someone explain the complex data content?

    • Visit the Public Data Portal Data Room

    • Browse PDF documents (table specifications) that provide detailed information about the standard data.

  3. RAW data gives birth to the master

    • Creating a master table based on a raw data file (CSV, Excel)

    • Editing RAW data files using the free editor Notepad++

  4. The master gives birth to a reference

    • Creating a reference table based on the master table

    • CREATE TABLE AS SELECT statement

    • UPDATE code values using the UPDATE JOIN statement

  5. Hide tight, PK, I'll definitely find you!

    • Various ways to find the Primary Key [Group]

    • What is ETL? (Extract, Transform, Load)

  6. If you don't have it, make it

    • Creating a Primary Key Group with a New Column

    • About the TEMPORARY table used in the intermediate stage

  7. Periodic updates, bulk up! ~Date

    • Update an existing operational master table with the entire data file including the change minutes.

    • INSERT INTO table SELECT ... ON DUPLICATE UPDATE ... Input and update in one sentence

National Parking Lot Information Standard Data

Things to note before taking the course

Practice environment

  • Operating System and Version (OS): Windows 10 or later recommended

  • Tools used: MariaDB 10.x or higher installed on a personal PC, general users and DB, and HeidiSQL

  • mysql-workbench 8.x or later (MySQL server is not required)

  • PC specifications: 6GB or more of memory recommended

Learning Materials

  • Copy content, printable PDFs, SQL scripts, and ERD files (referenced by course)

  • It does not cover installing MariaDB, mysql-workbench , and HeidiSQL.

Player Knowledge and Precautions

  • Recommended for beginner to intermediate SQL users

  • For mysql-workbench , it is recommended to take the course " Let's draw a data map ERD, MySQL Workbench " first.

  • For HeidiSQL, we recommend taking the course " MariaDB Client Development, HeidiSQL " first.

  • All videos for this course are available for free on YouTube ("SQL Bank"). (Lesson materials provided, but no copying of content is supported.)

  • If you watch on Inflearn, you'll receive an ad-free environment and access to resource-available lesson files . Be sure to keep this in mind when purchasing a course.

Recommended for
these people

Who is this course right for?

  • SQL developers who have completed the basics, theory, and practice but are at a loss as to what to do next

  • Developers who need to create basic data for testing a DB

  • Team leaders in the development and operation departments who want to strengthen the capabilities of new team members!

Need to know before starting?

  • SQL for beginners and intermediate users

  • Basic usage of HeidiSQL

  • Basic ERD drawing method using MySQL workbench

Hello
This is swa

2,633

Learners

70

Reviews

28

Answers

4.8

Rating

10

Courses

Hello, this is Software Notice. I have accumulated experience in database and middleware application development and various application fields, and I am creating tutorials utilizing SQL based on MySQL and MariaDB. I am running the YouTube channel "SQL BANK".

Hello, this is "SQL BANK". I have accumulated experience in developing database and middleware applications and in various application fields. I create tutorials utilizing SQL based on MySQL and MariaDB. I also run a YouTube channel called "SQL BANK".

More

Reviews

All

2 reviews

5.0

2 reviews

  • pink321ryu님의 프로필 이미지
    pink321ryu

    Reviews 21

    Average Rating 5.0

    5

    100% enrolled

    I took the DB design course with the goal of developing full-stack webpack. It was a systematic course. It helped me a lot to grasp the concept by repeating various cases. Thank you. In the case of interrelationship between fields, that is, the selection range of field 2 is determined based on the content of field 1, and the selection range of field 3 is determined based on the content of field 2, there was a part called ' bom ' in the previous lecture (ERD, MySQL Workbench Dashboard). Which part should I look at to study more about this tree structure?

    • swa
      Instructor

      Hello, Mr. Ryu Jae-an. Congratulations on finally completing the course. Thank you for your hard work. The BOM structure you asked about is often included in companies' internal databases in the form of "personnel organization charts", but it is not provided externally. So it is not easy to obtain. I am not sure if this will be an appropriate answer, but I will explain using examples provided by public data portals. https://www.code.go.kr/index.do Administrative Standard Code Management System On the initial access screen, Code Search (Top) > Agency Code Search (Bottom) Select Agency Type > Select "Legislative Organization" Select Required Columns > Order, Rank, Next-Highest Agency Code, Top-Highest Agency Code, Affiliated Agency Order, Representative Agency Code After searching, approximately 519 items are output > "Agency Code Search Data" on the top right of the table Download with button (The entire data is hundreds of thousands, so it may take a long time, so I chose an example of downloading only some of them.) (Example of creating a table in a personal DB) -Table name: org_exam create or replace table org_exam ( Organization code varchar(100), Full organization name varchar(1000), Lowest organization name varchar(100), Level varchar(100), Sequence varchar(100), Next highest organization code varchar(100), Top organization code varchar(100), Affiliated organization level varchar(100), Representative organization code varchar(100), Registered person VARCHAR(100) ); Upload the "Organization code query data.csv" file using a tool such as HEIDISQL SELECT COUNT(*) FROM org_exam ; (Performance query) WITH RECURSIVE tmp AS ( SELECT Organization code, Full organization name, Next level organization code, Full organization name AS path, 1 AS lev FROM org_exam WHERE Next level organization code = '0000000' UNION ALL SELECT bs.Organization code, bs.Full organization name, bs.Next level organization code, CONCAT(t.path,',',bs.Full organization name) AS path, t.lev+1 AS lev FROM tmp t JOIN org_exam bs ON t.Organization code=bs.Next level organization code ) SELECT Organization code, CONCAT(REPEAT(' ',lev*4),Full organization name) Full organization name, Next level organization code, path, lev FROM tmp ORDER BY agency code ; Query result data through data hierarchy (Data verification and appropriate query modification for result values are required.) -- Apart from this, the search conditions for field 2 and field 3 change depending on field 1 change are generally changed by registering Onload, OnChanged events, etc. to the corresponding list box in JavaScript, Nodejs, JAVA, etc., and calling a query whenever the corresponding field changes to bring the data and reload it. If the amount of data is large, it is also a method to bring all search condition data lists from the beginning and process them on the client, etc., but in this case, there are disadvantages such as the source being complicated and the UI being heavy. - In addition, it is said that BOM is used for parts that make up a finished product in manufacturing, but in my case, I have not had the opportunity to see it, so it is difficult to explain. Thank you for your hard work.

swa's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$27.50