[{"data":1,"prerenderedAt":152},["ShallowReactive",2],{"term-f\u002Ffirst-normal-form":3,"related-f\u002Ffirst-normal-form":138},{"id":4,"title":5,"acronym":6,"body":7,"category":119,"description":120,"difficulty":121,"extension":122,"letter":123,"meta":124,"navigation":77,"path":125,"related":126,"seo":131,"sitemap":132,"stem":135,"subcategory":136,"__hash__":137},"terms\u002Fterms\u002Ff\u002Ffirst-normal-form.md","First Normal Form","1NF",{"type":8,"value":9,"toc":113},"minimark",[10,15,19,23,26,30,102,106,109],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"First Normal Form (1NF) is the most basic normalization rule: each column should hold one value, not a list. If your 'tags' column stores 'php,javascript,python' as one string — that violates 1NF. Break it out into a separate tags table.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"First Normal Form requires that each column contains atomic (indivisible) values, each column contains values of a single type, and each row is unique. It eliminates repeating groups and arrays within a single column. Violating 1NF is typically solved by creating a separate table for the multi-valued attribute.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- VIOLATES 1NF\nCREATE TABLE posts (\n  id INT,\n  tags TEXT  -- 'sql,postgres,database'\n);\n\n-- Correct: separate table\nCREATE TABLE post_tags (\n  post_id INT, tag TEXT\n);\n","sql","",[38,39,40,48,54,60,66,72,79,85,91,97],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,47],{},"-- VIOLATES 1NF\n",[41,49,51],{"class":43,"line":50},2,[41,52,53],{},"CREATE TABLE posts (\n",[41,55,57],{"class":43,"line":56},3,[41,58,59],{},"  id INT,\n",[41,61,63],{"class":43,"line":62},4,[41,64,65],{},"  tags TEXT  -- 'sql,postgres,database'\n",[41,67,69],{"class":43,"line":68},5,[41,70,71],{},");\n",[41,73,75],{"class":43,"line":74},6,[41,76,78],{"emptyLinePlaceholder":77},true,"\n",[41,80,82],{"class":43,"line":81},7,[41,83,84],{},"-- Correct: separate table\n",[41,86,88],{"class":43,"line":87},8,[41,89,90],{},"CREATE TABLE post_tags (\n",[41,92,94],{"class":43,"line":93},9,[41,95,96],{},"  post_id INT, tag TEXT\n",[41,98,100],{"class":43,"line":99},10,[41,101,71],{},[11,103,105],{"id":104},"when-youll-hear-this","When You'll Hear This",[16,107,108],{},"\"The tags column violates First Normal Form — put them in a separate table.\" \u002F \"1NF is the starting point for proper database design.\"",[110,111,112],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":50,"depth":50,"links":114},[115,116,117,118],{"id":13,"depth":50,"text":14},{"id":21,"depth":50,"text":22},{"id":28,"depth":50,"text":29},{"id":104,"depth":50,"text":105},"database","First Normal Form (1NF) is the most basic normalization rule: each column should hold one value, not a list.","intermediate","md","f",{},"\u002Fterms\u002Ff\u002Ffirst-normal-form",[127,128,129,130],"Normalization","Denormalization","Schema","Junction Table",{"title":5,"description":120},{"changefreq":133,"priority":134},"weekly",0.7,"terms\u002Ff\u002Ffirst-normal-form",null,"LYW1xvy6xKKdzJbB36RI9BioFVSwUAmnXo6N_7hIOYU",[139,142,145,148],{"title":128,"path":140,"acronym":136,"category":119,"difficulty":121,"description":141},"\u002Fterms\u002Fd\u002Fdenormalization","Denormalization is the intentional opposite of normalization — you duplicate data to make queries faster.",{"title":130,"path":143,"acronym":136,"category":119,"difficulty":121,"description":144},"\u002Fterms\u002Fj\u002Fjunction-table","A junction table (also called a join table) is the middle table you create to represent a many-to-many relationship.",{"title":127,"path":146,"acronym":136,"category":119,"difficulty":121,"description":147},"\u002Fterms\u002Fn\u002Fnormalization","Normalization is the process of organizing your database to reduce data duplication.",{"title":129,"path":149,"acronym":136,"category":119,"difficulty":150,"description":151},"\u002Fterms\u002Fs\u002Fschema","beginner","A database schema is the blueprint of your database — which tables exist, what columns they have, what types they are, and how they relate to each other.",1776518280215]