관계형 데이터 모델링

논리적 데이터 모델링 1

수업소개

ER diagram을 관계형 데이터베이스 모델에 어울리게 변환하는 과정을 다루고 있는 수업입니다. 여기서는 Mapping rule을 중점적으로 공부합니다. 

 

 

강의1

 

 

 

강의2

 

 

 

강의3

 

 

 

 

강의4

 

 

 

 

강의5

 

 

 

 

강의6

댓글

댓글 본문
  1. 고롱박이
    챗 gpt가 작성해준 코드 예시입니다.혹시 이상 있다면 살펴주시길 바랍니다.

    프론트엔드(HTML과 자바스크립트)
    <!DOCTYPE html>
    <html>
    <head>
    <title>책 및 저자 관계 설정</title>
    </head>
    <body>
    <h1>책 및 저자 관계 설정</h1>
    <label for="title">책:</label>
    <select id="title">
    <option value="Title 1">책 1</option>
    <option value="Title 2">책 2</option>
    <option value="Title 3">책 3</option>
    </select><br>

    <label for="author">저자:</label>
    <select id="author">
    <option value="Author A">저자 A</option>
    <option value="Author B">저자 B</option>
    <option value="Author C">저자 C</option>
    </select><br>

    <button onclick="assignAuthorToTitle()">관계 설정</button>

    <script>
    function assignAuthorToTitle() {
    const selectedTitle = document.getElementById('title').value;
    const selectedAuthor = document.getElementById('author').value;

    // 백엔드 PHP 스크립트 호출
    const xhr = new XMLHttpRequest();
    xhr.open("POST", "assign_author_to_title.php", true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
    alert(xhr.responseText);
    }
    };
    xhr.send("selectedTitle=" + selectedTitle + "&selectedAuthor=" + selectedAuthor);
    }
    </script>
    </body>
    </html>


    백엔드(PHP와 SQL)
    <?php
    // 데이터베이스 연결 정보 설정
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "mydb";

    // 데이터베이스 연결 생성
    $conn = new mysqli($servername, $username, $password, $dbname);

    // 연결 확인
    if ($conn->connect_error) {
    die("데이터베이스 연결 실패: " . $conn->connect_error);
    }

    $selectedTitle = $_POST['selectedTitle'];
    $selectedAuthor = $_POST['selectedAuthor'];

    // 책-저자 관계를 데이터베이스에 저장
    $insertRelationQuery = "INSERT INTO title_author_relations (title, author) VALUES ('$selectedTitle', '$selectedAuthor')";
    if ($conn->query($insertRelationQuery) === TRUE) {
    echo "책과 저자 관계가 설정되었습니다.";
    } else {
    echo "책과 저자 관계 설정 에러: " . $conn->error;
    }

    // 연결 종료
    $conn->close();
    ?>
    대화보기
    • 고롱박이
      N:M 관계 질문드립니다.

      사용자 입장에서 일일히 조인테이블에 그 관계를 한 행씩 입력해야하는걸까요?


      사용자 입장에서 조금 더 쉽게 입력할 수 있는 방법은 없는지 궁금합니다.
    • 당당
      2023.05.03
    • 강정34
      강의3에서 헷갈리는게 있어서 질문드려요ㅠ 맨더터리와 옵셔널은 서로 대척점에 있는것이라 생각드는데, 저자와 휴면자에 다이어그램이나 관계형데이터에서 그릴 때 저자는 휴면자가 될 수도 있고 안 될 수도 있으니 휴면자쪽에 있는 직선끝에는 ㅣ 짝대기가 없이 옵셔널 ●동그라미만 있어야 하는거 아닌가요?? 아니면 그냥 잘못그렸는데 못발견하신건지, 아니면 특별한 이유가 있는지 궁급합니다! 그리고 특정한 상황에서는 맨더터리와 옵셔널이 동시에 있을수도 있을까요?
    • 코드파괴자
      2023.04.07 완-

      마지막 영상이 조금 헷갈리네요.
      작성자 - 매핑 - 본문 이렇게 세 개의 테이블이 있을 때,
      작성자 - 매핑 = 작성자의 입장에서 글을 쓰는것(매핑)은 선택이기에 옵션이고, 여러개를 쓸 수도 있어서 새 발;
      매핑의 입장에서 작성자는 반드시(필수) 한 명은 존재해야 글이 존재하므로 직선, 카디 인것
      은 알겠습니다.

      근데,
      매핑 - 본문 = 매핑(작성자) 입장에서 본문은 쓸수도 있고 안쓸수도 있어서 옵션, 새 발;
      본문 입장에서 매핑은 반드시 존재해야 본문이 있기 때문에 직선, 필수 아닌가요?
    • 1대 n: 1쪽에 pk, n쪽에 fk주면서 활용
      1대1:pk,fk 잘 구분하여 적용
      n대m :mapping table 활용
    • 후토마끼
      22.10.06
    • 아캔두잇
      20220821 완료
    • toonfac
      220707 오후 4시 07분 완료
    • mirpia
      study
    • 오니
      2021.12.2. 감사합니다.
    • 가람마루
      똑같은 글의 제목과 내용을 다른 작성자도 작성가능하기 때문에 N:M관계인 것이 아니고요.

      하나의 글을 여러 명의 저자가 공동작성한 것으로 보는 겁니다.

      파트별로 작성했을 수도 있고, 여러 저자가 계속 수정할 수도 있겠지요.

      흔히 말하는 위키피디아나 나무위키를 생각하시면 되겠습니다.
      대화보기
      • 이마누
        완료
      • 이횹
        21.08.08.
      • 신혜원
        감사합니다^^
      • HOANY
        일반적으로 지금 제가 답글을 다는거와 같이 이 댓글은 여러명이 쓰는것이 아닌
        저혼자 쓰는것이므로 필살인생님의 말이 맞습니다.

        다만 위 강의에 내용을 생각해 본다면 topic은 책으로 생각하시면 편할것 같습니다.
        따라서 책은 혼자 또는 여러명의 저자가 참여하여 작성할 수 있으니 N:M 관계로 볼수있다고
        생각합니다!
        대화보기
        • 감사합니다
        • 김선경
          2021.02.21
        • 불닭볶음면
          2021. 01. 11
        • qoeqpeqoeoq
          좋은 지식 공유 감사합니다.
        • kmj5970
          감사합니다
        • 양민
          1회독 완료
        • jiyeong
          2020.08.25.
        • 김재원123
          재밌네요 감사합니다^^
        • 산노을
          감사!!!!!!!!!!!!!!!!!!!!!!
        • BePro
          감사합니다
        • Hans
          완료
        • ethan
          191121 완료
        • 이유진
          완료!
        • Ram Lee
          중요한 내용!
        • 가재준
          완료
        • 굼벵이
          완료
        • guswns1659
          맞습니다 ㅎㅎ 글 수정이 가능하다고 가정했어요!
          대화보기
          • mkxamkxa
            저는 author와 table의 관계를 작성자와 나무위키/위키피디아를 생각더니 이해가 잘 되었습니다.
            대화보기
            • wooky92
              여기서는 한 글을 여러명이서 작성할 수 있어서 M:N관계로 정의했습니다. 필살인생님께서 맞게 이해하고 계십니다 :)
              대화보기
              • 필살인생
                궁금한 점이 있습니다.

                일반적인 게시판의 글을 생각하면 하나의 글의 작성자는 단 1명이고 작성자는 여러개의 글을 작성할 수 있으므로, author와 topic의 관계는 다대다 관계가 아니라 일대다 관계로 봐야 하는 것이 아닌지요?

                강의내용의 author 와 topic의 다대다 관계라고 말씀하신 것은
                혹시 하나의 글을 여러 작성자가 같이 작성할 수 있는 구조라고 이해하면 될까요?
                제가 뭔가 잘못 이해하고 있는 것이 있다면 좀 짚어주시면 감사하겠습니다.

                좋은 강의 항상 감사드립니다. :)
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기