CAP 이론과 NoSQL 데이터베이스의 확장성
·
Computer Science
CAP 이론이란 분산 시스템에서 데이터 일관성, 가용성, 네트워크 분할 허용이라는 세 가지 중요한 특성간의 관계를 설명하는 이론이다.쉽게 말해, 분산된 여러 서버(노드)가 함께 서비스를 제공할 때, 이 세 가지 조건을 모두 동시에 완벽하게 만족할 수 없다는 것을 의미한다.CAP일관성 C(Consistency): 모든 노드에서 동일한 데이터 값을 읽을 수 있다.즉, 하나의 서버에서 데이터를 저장하거나 변경하면 다른 모든 서버에서 동일하게 그 변경사항을 즉시 볼 수 있다.가용성 A(Availability): 모든 요청에 대해 항상 응답을 받을 수 있다.즉, 사용자의 모든 요청에 대해 일부 시스템에 장애가 발생하더라도 나머지 시스템들이 요청을 처리해준다. (정상/에러)네트워크 분할 허용 P(Partition ..
SQL Injection
·
Computer Science
SQL Injection이란 조작된 SQL 쿼리가 데이터베이스에 그대로 전달되어 비정상적인 쿼리 명령을 실행시키는 공격 기법이다.1. 인증 우회 방법값을 입력하는 input에 SQL 쿼리를 넣어, 해당 문자열이 그대로 데이터베이스에 전달되는 방식세미콜론으로 쿼리를 닫아버리고, 유저를 삭제하는 등의 쿼리를 추가로 넣을 수 있다.비밀번호 뒤에 OR 1=1을 붙여 로그인이 무조건 성공하도록 할 수 있다.첫 번째 쿼리를 종료시키고, 원하는 쿼리를 실행시킬 수도 있다.; DELETE FROM USERS;2. 데이터 노출시스템에서 발생하는 에러 메시지를 이용해 공격하는 방법이다.해커는 GET 방식으로 동작하는 URL 쿼리 스트링을 추가하여 에러를 발생시킨다. 이를 통해 웹앱의 데이터베이스 구조를 유추할 수 있고 해..
데이터베이스 Join
·
Computer Science
Join이란 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법이다.SELF JOIN은 하나의 테이블도 가능정규화를 진행하면 중복을 제거하기 위해 관계를 통해 테이블을 분리한다. 이때, 필요한 데이터를 한 번에 조회하기 위해 Join을 사용하게 된다.테이블을 연결하려면, 적어도 하나의 컬럼을 서로 공유하고 있어야 하므로 이를 활용해 데이터 검색에 활용한다.주로, 테이블을 분리하면서 관계를 맺기 위해 외래키가 존재하고 이를 통해 연결한다.Join 종류INNER JOINLEFT OUTER JOINRIGHT OUTER JOINFULL OUTER JOINCROSS JOINSELF JOININNER JOIN기준 테이블과 join 테이블의 연결된 값을 보여준다.연결되지 않은 튜플들은 조회 결과..
데이터베이스 이상(Anomaly) 현상
·
Computer Science
이상이란 정규화를 하지 않았을 때 잘못된 테이블 설계로 발생하는 현상이다.이상의 종류삽입갱신삭제삽입 이상불필요한 데이터를 추가해야 삽입할 수 있는 상황student_idstudent_namecourse_nameprofessor101홍길동자료구조김교수자료구조 강의와 김교수를 데이터베이스에 등록하고 싶지만, 아직 수강하는 학생이 없을 경우 불필요한 학생 이름을 미리 추가해야 저장할 수 있다.갱신 이상일부만 데이터가 수정되어 데이터가 불일치하는 모순이 발생student_idstudent_namecourse_nameprofessor101홍길동자료구조김교수102이영희자료구조김교수103박철수자료구조김교수김교수의 이름이 변경될 때, 첫 번째 row만 수정되면 다른 row의 데이터가 불일치되는 모순이 존재한다.삭제 이..
데이터베이스 Key
·
Computer Science
데이터베이스 Key란 데이터베이스의 튜플 혹은 row를 구분할 수 있는 기준이되는 속성이다.Key 종류후보키기본키대체키슈퍼키외래키예시 테이블학번(student_id)이름(name)전화번호(phone)이메일(email)2024001홍길동010-1234-5678gil@example.com2024002이순신010-2345-6789soon@example.com2024003유관순010-3456-7890kwan@example.com학번은 학교에서 유일함. 후보키 가능email 이메일도 중복 불가하므로, 후보키가 가능phone 전화번호도 1인 1번호라면 후보키 가능name 이름은 중복되므로 후보키 불가능(name, phone)은 phone이 이미 단독으로 후보키이므로, 슈퍼키1. Candidate Key (후보키)후..