본문 바로가기

cs 기초지식

(4)
SQL과 NoSQL의 차이 근본적인 차이는 SQL은 스키마를 사용하고 NoSQL은 그와 달리 스키마가 없다는 점에 있다. 데이터구조 SQL -엄격한 스키마를 원칙으로 한다. -스키마에 맞지 않는 형식의 데이터는 저장할 수가 없다. 엄격한 스키마를 가지고 있기 때문에 위의 테이블에서 한명의 고객만 이메일을 추가하거나 전화번호를 적지 않는건 불가능하다. NoSQL -스키마를 가지고있지 않다. 위 테이블처럼 NoSQL과 같은 경우 엄격한 스키마를 가지고있지 않기 때문에 꼭 형식에 맞게 작성하지 않아도 된다. 관계 SQL SQL은 테이블 간의 관계 지정을 통해서 테이블을 접근할 수 있고 각 테이블의 메인키만 가져와서 새로운 테이블을 만든다. (위 예시에서는 Products 테이블과 Customers 테이블에서 메인 키들만 가져와서 Ord..
SQL Injection 해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 2017년에 여기어때에 일어난 해킹 사건 역시 SQL Injection으로 이뤄진 것이라고 한다. (난 그러진 않을거지만 이런식으로 해킹을 할 수 있는건 좀 흥미롭긴 하다) 공격방법 인증우회 제일 흔하게 사용되는 논리적 에러를 이용한 SQL 인젝션이다. 원래 입력창에 아이디와 비번을 입력하고 1번 쿼리가 실행된다면, 3번처럼 WHERE id = ' ' OR 1 = 1 -- 와 같은걸 넣어줌으로써 구문이 무조건 True가 되게 해서 모든 계정을 조회하게 되고 가장 처음에 만들어진 계정에 로그인하게 되는 것이다. 이 때 보통 관리자 계정이 가장 처음으로 만들어지기 때문에 관리자 계정으로 로그인하게 돼서 2..
조인(JOIN) 조인이란? 두 개 이상의 테이블이나 데이터베이스를 연결해서 데이터를 검색하는 방법 조인의 종류 1. Inner Join 교집합으로, 기준 테이블과 join 테이블의 중복된 값을 보여준다. JOIN 조건에서 동일한 값이 있는 행만을 반환한다. 2. Outer Join 조인 조건을 만족시키지 않는 튜플도 결과 관계에 포함시키는 것으로 매칭이 되는 튜플이 없이도 성립이 가능하다. 3. Cross Join 모든 경우의 수를 전부 보여주는 방식. 4. Self Join 자기 자신과 함께 join 하는 것. 면접 질문 (예상) Q. JOIN의 종류와 특징에 대해 말해보세요 JOIN의 종류에는 Inner Join, Outer Join이 있고 Outer Join에는 Left Outer Join, Right Outer ..
키(Key) 키란? 튜플을 검색하거나 정렬할 때 기준이 될 수 있는 attribute. 1. Candidate Key (후보키) 유일성: 키로 하나의 튜플을 유일하게 식별할 수 있도록 하는 것 최소성: 식별하는 데에 최소 수의 원소가 필요한 것. 2. Primary Key (기본키) 후보키들 중 선택한 메인 키 Null값을 가질 수 없다 동일한 값이 중복될 수 없다. 3. Alternate Key (대체키) 후보키들 중 기본키를 제외한 나머지 키 4. Super Key (슈퍼키) 유일성은 만족하지만 최소성은 만족하지 못하는 키 5. Foreign Key (외래키) 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합 면접 질문 (실전) Q. 데이터베이스의 키 종류에는 어떤게 있나요? 후보키, 대체키, 기본키, 외래키..