
JSON Validator - https://jsonlint.com/
JSON 형식의 데이터를 활용하려면 해당 문자열을 파싱(parsing)하여 프로그래밍 언어에서 사용할 수 있는 구조화된 데이터로 변환해야 함
파싱(parsing) : 프로그램이 데이터를 이해할 수 있도록 문자열을 해석하는 것
JSON.parse() JSON 문자열을 JS 객체로 변환let jsonString = '{"name": "John", "age": 30, "city": "New York"}';
// JSON 문자열을 객체로 변환
let jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // "John"
console.log(jsonObject.age); // 30
JSON.stringify() : JS 객체리터럴을 JSON 문자열로 변환let person = {
name: "John",
age: 30,
city: "New York"
};
// 자바스크립트 객체를 JSON 문자열로 변환
let jsonString = JSON.stringify(person);
console.log(jsonString); // '{"name":"John","age":30,"city":"New York"}'
테이블 만들기 전 설계도
엔터티(Entities)와 이들 간의 관계(Relationships)를 시각적으로 표현
※ ERD 설계 단계에서는 DBMS(MySQL, Oracle 등)를 정하지 않고 중립적으로 설계하는 것이 원칙
ERD cloud - https://www.erdcloud.com/
엔터티(Entity): 실제 세계에서 데이터베이스가 저장하고자 하는 객체나 개념
엔터티는 일반적으로 직사각형으로 표시됨
예) 학생, 교수, 수업 등
속성(Attribute): 엔터티가 가질 수 있는 특성
속성은 타원형으로 표시됨
예) 학생 엔터티는 학생ID, 이름, 나이 등의 속성을 가질 수 있음
기본 키(Primary Key): 엔터티 내에서 각 인스턴스를 고유하게 식별하는 속성
기본 키는 속성에서 밑줄로 표시됨
예) 학생ID는 학생 엔터티의 PK
관계(Relationship): 두 개 이상의 엔터티 간의 상호 작용을 나타냄
관계는 다이아몬드 모양으로 표시됨
예) 학생-수업 엔터티 간에 수강이라는 관계가 있을 수 있음
카디널리티(Cardinality): 관계에서 한 엔터티의 인스턴스가 다른 엔터티의 인스턴스와 어떻게 연결되는지를 나타냄
예)1:1, 1:N, M:N
--OWNER 테이블 만들기
CREATE TABLE OWNER (
OWNER_ID NUMBER PRIMARY KEY,
OWNER_NAME VARCHAR2(20),
PHONE VARCHAR2(20)
);
--OWNER 테이블의 PK값을 자동 증가시켜 줄 SEQUENCE만들기
CREATE SEQUENCE SEQ_OWNER
START WITH 1
INCREMENT BY 1;
--ANIMALTYPE 테이블 만들기
CREATE TABLE ANIMALTYPE(
ANIMALTYPE_ID NUMBER PRIMARY KEY,
TYPE_NAME VARCHAR2(20)
);
--ANIMALTYPE 테이블의 SEQUENCE 만들기
CREATE SEQUENCE SEQ_ANIMALTYPE
START WITH 1
INCREMENT BY 1;
--PET 테이블 만들기
CREATE TABLE PET(
PET_ID NUMBER PRIMARY KEY,
PET_NAME VARCHAR2(20),
AGE NUMBER,
OWNER_ID NUMBER,
ANIMALTYPE_ID NUMBER,
--⭐FOREIGN KEY 생성하기⭐
CONSTRAINT FK_OWNER_PET
FOREIGN KEY(OWNER_ID)
REFERENCES OWNER(OWNER_ID),
CONSTRAINT FK_ANIMALTYPE_PET
FOREIGN KEY(ANIMALTYPE_ID)
REFERENCES ANIMALTYPE(ANIMALTYPE_ID)
);
--PET 테이블의 SEQUENCE만들기
CREATE SEQUENCE SEQ_PET
START WITH 1
INCREMENT BY 1;
외래 키(Foreign Key)는 다른 테이블(부모 테이블)의 기본 키(PK)를 참조하는 키로, 두 테이블 간의 관계를 설정하는 제약 조건
존재하는 PK만 입력 가능
자식 테이블은 부모 테이블에 존재하는 값만 외래 키로 가질 수 있습니다.
→ 없는 값을 넣으면 "제약조건 위반" 오류 발생!
부모의 값이 삭제될 수 없음
자식이 참조 중인 부모의 값은 삭제 불가